1.用单引号括起来的字符代表一个整数用双引号括起来的字符串代表一个指针并且字符串的末尾会有一个额外的‘\0’。比如char*p1;这 1.用单引号括起来的字符代表一个整数用双引号括起
1.用单引号括起来的字符代表一个整数用双引号括起来的字符串代表一个指针并且字符串的末尾会有一个额外的‘\0’。
比如char *p1 /; //这是不对的 /并不是一个指针而是代表一个常数。
char *p2 "hello";//正确p2指向hello这个字符串中第一个字符并且字符串后边隐含了一个\0.
2.数组越界并不一定会导致程序崩溃还可能是你所想不到的------死循环。
比如
int main(){int i0;int arr[10];for(i 0; i<10; i){printf("hello\n");arr[i] 0;}return 0;} 该程序就是一个死循环。当我们定义arr[10]时内存中只会给它分配10个内存空间下标为0到9变量i的空间实际是在数组之后的位置。当i变到10时我们所要赋值的arr[10]实际是i即循环中i为10时i的值又被变为0一直循环。
3.易错点浮点数与零值的比较。(以下的a是float型)
if(a0)printf(".....");
if(a 0.0)......以上两段代码均不对。
if(a >-exp 一般用define宏定义给出。
4.数组长度求解。
数组长度的求解并不能用strlen函数。
strlen 函数用于求字符串长度或字符数组有‘\0’长度。
而要求整型数组或其他类型数组长度时用 sizeof数组名/ sizeof数组中的某一元素。