您认为发生了什么事名为name的指针如何获取字符串的大小?请逐步澄清
main()
{ char *name;
scanf("%s",name);
printf("hi %s ! \n",name);
在C中,字符串的大小不会存储在任何地方(除非您这样做)。>
“字符串”,实际上是字符数组,以值0('\0'
)结尾。
这是一个约定。
[C0等库函数希望字符数组在某个点上具有字节0,以标记字符串的结尾。
代码
printf
将在内存中转换为
char *name = "hekal";
最后一个
------------- |h|e|k|a|l|0| -------------
是字节0(整数0),而不是ASCII字符0
。