if switch while for

C语言中:0代表假,非0代表真

 

分支:

else不能独立存在且总是与它最近的if匹配

 

为避免将==写成=带来的逻辑错误,将x=value写成value=x(这种写法编译不通过)

 

 

 


 

 

 

 

 


 

 

循环:

 

 continue只能用于switch,break可以用于break和循环

 


 

 

一般函数设计:

 

在函数中分配资源

执行函数语句

释放资源退出函数(先free再return)

 

一个入口,一个出口

#include <stdio.h>
#include <malloc.h>

int func(int n)
{
    int i = 0;
    int ret = 0;
    int* p = (int*)malloc(sizeof(int) * n);
    
    do
    {
        if( NULL == p ) break;
        
        if( n < 0 ) break;
        
        for(i=0; i<n; i++)
        {
            p[i] = i;
            printf("%d\n", p[i]);
        }
        
        ret = 1;
    }while(0);
    
    free(p);
    
    return ret;
}

int main()
{
    if( func(10) )
    {
        printf("OK");
    }
    else
    {
        printf("ERROR");
    }
}

 

而不是这样

#include <stdio.h>
#include <malloc.h>

int func(int n)
{
    int i = 0;
    int ret = 0;
    int* p = (int*)malloc(sizeof(int) * n);
    
	
	if( NULL == p ){
		free(p); 
		return 0;
	}        
	if( n < 0 ) {
		free(p); 
		return 0;
	}        
	
	for(i=0; i<n; i++)
	{
		p[i] = i;
		printf("%d\n", p[i]);
			free(p); 
			return 0;		       
	}
	
	ret = 1;
	
    
    return ret;
}

int main()
{
    if( func(10) )
    {
        printf("OK");
    }
    else
    {
        printf("ERROR");
    }
}

 

posted @ 2015-09-03 16:12  沐风先生  阅读(85)  评论(0编辑  收藏  举报