首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言的字符有关问题

2012-10-11 
C语言的字符问题int main() {char cc 0if(cc \0)printf(%c\n, cc)return 0}这段程序,输出为什

C语言的字符问题
int main() {

char cc = 0;

if(cc == '\0')
printf("%c\n", cc);
return 0;
}

这段程序,输出为什么是
a
啊?换成printf("%s\n", cc);就成null了,
求高人指点

[解决办法]
看了半天 没看出来怎么回事 在vim里打了一遍 输出为空 正确 
以为敲错了和楼主代码不一样 复制粘贴 再次调试 仍然没错 是空 
猜测 反正代码没错

另外说一下
printf("%s\n", cc);就成null了, 这个代码是错的 %s 后边的变量必须是指向字符串的指针 你用cc的话 编译器就把cc里存的数据解释成指针了 至于为什么输出空 我猜测一个是越界了 因为os有内存保护 所以显示为null 但是我记得指针越界在gcc里应该是段错误 第二个猜测是 os的内存空间不包括cc对应的地址 所以显示null 这个猜测我有觉得不太对 cc是1字节 而地址是4字节 无论如何也应该有这个地址啊

热点排行