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"); } }
谢谢