发布网友 发布时间:2022-04-24 01:49
共5个回答
热心网友 时间:2023-10-19 21:30
“C语言中说字符串结尾应该是字符'\n',” 这句话是不对的,字符串的默认结尾是‘\0’,例如:
char a[] = “abcd”,在内存中是这么存储的:
系统会默认的将最后一位加上一个'\0'做为字符串的结束符。这时,a的数组长度为5,而a的字符串长度为4,即它只有4个字符。
再来看这个:
char a[4] = "abcd";
在VS2010中它会提示你的数组越界了,就是我刚才说的原因,它没有足够的地址去存放它的结束符了。
热心网友 时间:2023-10-19 21:30
字符串结尾应该是'\n'是在用户输入字符的时候做的用户输入完成的判断。也有用-1结尾 的,而在这个程序中字符串是初始化的。字符串长度是一定的。不需要\n了。热心网友 时间:2023-10-19 21:31
char name[10]="xiao mingg";你这很明显了,xiao mingg加一起一共10位,数组刚好能够存下,所以系统让你编译通过系统将你最后一个g也人为是一个字符来计算了热心网友 时间:2023-10-19 21:31
你什么编译器 我VC6报错热心网友 时间:2023-10-19 21:32
C语言中说字符串结尾应该是字符'\0',热心网友 时间:2023-10-19 21:30
“C语言中说字符串结尾应该是字符'\n',” 这句话是不对的,字符串的默认结尾是‘\0’,例如:
char a[] = “abcd”,在内存中是这么存储的:
系统会默认的将最后一位加上一个'\0'做为字符串的结束符。这时,a的数组长度为5,而a的字符串长度为4,即它只有4个字符。
再来看这个:
char a[4] = "abcd";
在VS2010中它会提示你的数组越界了,就是我刚才说的原因,它没有足够的地址去存放它的结束符了。
热心网友 时间:2023-10-19 21:30
字符串结尾应该是'\n'是在用户输入字符的时候做的用户输入完成的判断。也有用-1结尾 的,而在这个程序中字符串是初始化的。字符串长度是一定的。不需要\n了。热心网友 时间:2023-10-19 21:31
char name[10]="xiao mingg";你这很明显了,xiao mingg加一起一共10位,数组刚好能够存下,所以系统让你编译通过系统将你最后一个g也人为是一个字符来计算了热心网友 时间:2023-10-19 21:31
你什么编译器 我VC6报错热心网友 时间:2023-10-19 21:32
C语言中说字符串结尾应该是字符'\0',