天刀 天下镖:c 语言小问题?

来源:百度文库 编辑:神马品牌网 时间:2024/05/07 04:40:34
char ch[80]={0};这里的0是什么意思?字符数组不赋值的话我怎么觉得应该是char ch[80]=['\0'] ;.
还有就是 char *p;*p=0; 这里怎么令字符指针为0了,
不是应是一字符吗?
这里是不是*p='0';与*p=0;一样呀?是的话,
也只有0可以这样吧?其他数字如1,2不行吧?

不一样。
'0' 的ASCII 码 为 48
所以 '0' = 48 '1'= 49 '2' = 50
单引号夹一个字符 可以表示一个数啊。

再说,char 不一定非得用来表示字符,表示字符对应的数也行啊。
char 占的空间小,我就为了省内存空间用char代替过int。
char 是 -128 到 127

char ch[80]={0};
是让数组里所有元素都初始化为0,相当于
ch[0]=0;ch[1]=0;ch[2]=0;……
char *p;*p=0;是两个过程
char *p;是定义一个指针p
*p=0;是让p的内容为0,不是让字符指针为0

'\0'的ASCII码就是0。所以char ch[80]={'\0'} ;和char ch[80]={0} ;的效果是一样的,但一般还是用'\0'规范一点。
1,2,什么的,只要是小于256的正整数都可以啊,分别是它们对应的字符。比如65就对应‘A’,97对应‘a'

0也可以算字符的啊,不一定是英文字母啊,char ch[80]={0}是80个0啊,不是字符数组不赋值