最近拿了本C语言温故了下,颇有一些不熟悉的地方,于是笔记下来:
1。常量定义一般大写:#define PRICE 30 ,可用#undef终止宏定义作用域。
2。变量名是一个符号地址,通过它找到变量对应的内存地址,进而通过内存地址读取变量的数据。
3。变量编译时就分配了内存空间。
4。注意溢出问题:int i=32767;i+1 = -32768。
5。字符以Ascii码存储;字符串"a"表示'a' 和'\0'两个字符。
6。sizeof是运算符,可用于任何变量名、类型名或常量值,当用于变量名或常量时,它不需要用圆括号。它在编译时起作用,而不是运行时。如sizeof(int)=4;
7。强制转换:(int)a;不用int (a);
8。格式化的原样输出“%d %d”,"%d,%d"...
9。max = (a>b)?a:b; switch 的case加break防穿透。
10。break;跳出内循环,continue 继续下一次循环。if(n%3==0) continue; while(){if() break;}用break跳出while死循环。
11。a[i] 和 *(a+i)一样;int a[8]={0};整个数组元素都初始化为0。
12。strcat,strcpy,strcmp(字母后面大,小写大),strlen("123")=3,strlwr,strupr。
13。全局变量作用域定义处到文件结束,首字母一般大写。局部变量屏蔽全局变量。
14。static 变量保存原值,仅本本件使用(作用域),extern 扩展外部变量的作用域。
15。库文件引用#include <math.h>在库文件目录查找,#include “math.h”先在当前目录查找,再在库目录查找。
16。条件编译 #ifdef DEBUG .....#else ..... #endif, #define DEBUG。最简单的:#if 1(0) .....#else ....#endif,很灵活。
17。char *str;str = "123456";有时在C++中定义char数组。
18。字节的取反(与0xFF异或):BYTE b = 0xFF; b^0xFF = 0x00;
19。声明自定义数据类型:typedef int size;