#include<stdio.h>
int main()
{
char name[10]="xiao mingg";
char *addr;
int value;
int i;
addr=name;
for(i=0;i<10;i++)
{
value=*addr;
printf("[%x]='%c'=%d\n",addr,value,value);
addr++;
}
return 0;
}
程序一样可以执行啊
“C语言中说字符串结尾应该是字符'\n',” 这句话是不对的,字符串的默认结尾是‘\0’,例如:
char a[] = “abcd”,在内存中是这么存储的:
系统会默认的将最后一位加上一个'\0'做为字符串的结束符。这时,a的数组长度为5,而a的字符串长度为4,即它只有4个字符。
再来看这个:
char a[4] = "abcd";
在VS2010中它会提示你的数组越界了,就是我刚才说的原因,它没有足够的地址去存放它的结束符了。