‘0’和‘\0'的区别 : 一个ASCⅡ值为48,字符为0;一个ASCⅡ值为0,字符为NUL。
#include <stdio.h> main() { char s[5]; s[0] = '0'; s[1] = '\0'; printf("%c\n", s[1]+1); printf("%c\n", s[0]+1); printf("%c", s[2]+1); //字符串数组若没赋值,默认为‘\0' }
指针的初使化和赋值
#include <stdio.h> main() { int a[] = {10, 20, 30, 40}, *p = a; *p = 2; printf("%d\n", *p); }
第一个*p没有取值的意思,因为它最开始没有指向任何值,也就没有值给它取,只是标示p为指针,类似的还有int m; int *p = &m;和int *p = "abc";("abc"表示'a'的首地址)。
第二个*p是赋值,注意在p没有指向一个数据前,这样的赋值是不允许的。