c语言我知道定义数组,在赋值的元素少于定义时的元素的个数时就会补\0

c语言我知道定义数组,在赋值的元素少于定义时的元素的个数时就会补\0那么为什么单个字符输出的时候就输出\0,就是输出空字符,而输出字符串的时候就不输出\0,求大神解释,谢谢🙏

你没明白字符和字符串在输出时的区别, 字符就不用说了, 字符串在输出时, 只需要给出首地址(也不一定是首地址, 任意一个地址), 它就会按内存地址一个接一个的输出, 直到遇见'\0'追问

那么我定义了10个元素,字符串只有5个元素,那剩下的4个元素怎样处理的

追答

如果是按字符串处理, 不用管剩下的4个元素

追问

那剩下的4个元素依然占空间只是停始输出不显示出来?

追答

是的, 那段内存空间依然被该数组占用, 只是用字符串输出时不显示, 如果用逐个字符输出时会被显示

温馨提示:内容为网友见解,仅供参考
无其他回答

关于C语言字符数组的赋值最后自动添加‘\\0’问题
c[5]只有5个空间无法完全容纳字符串"hello",因为这个字符串需要占用6个字符位置。所谓自动加'\\0'的问题是:你写在双引号中的,编译程序会认为是字符串,会自动为你添加上一个字符串结尾符号0,而不是运行时添加的。如果你用debug方式运行程序,调试环境自动会把你开设的char a[5];进行初始化0的...

C语言 字符数组在定义时实际长度能不能等于有效长度 不给\\0留空间_百 ...
一般不能,除非特殊用途,比如故意弄个溢出 C语言规定字符串必须以“\\0”结尾,所以正常使用的话必须预留至少1个字节的空间存储这个0,否则在输出字符串的时候,会把字符串后面的东西一起输出,知道遇到0

C语言中数组输入的值个数不够声明的个数无法进行
这个如果要用户指定输入的数量,最好给那个数组进行动态赋值,如下:include<stdio.h> include<stdlib.h> int main(){ int *a;\/\/使用指针代理数组 int i;int b;\/\/用来确定数组的大小 printf("\\n请设置数组的大小:");scanf("%d",&b);a=(int *)malloc(sizeof(int)*(b+1));\/\/确定数组...

C语言中,为什么有的字符数组要后面要加\\0,有的不要加?
这个程序此处不加也没有问题的。因为接下来是先gets(str);然后再使用的。在函数内部定义的变量或数组,都是要先经过赋值后才能运用的,否则其中的值不确定。如果在程序代码中先经过赋值后再应用,那么在声明变量时可以不赋初值的。

C语言设定一个数组,从键盘给数组赋值。然后判断输入数的个数,如果小于...
printf("input side lengths a b c:\\n");gets(ss);i = sscanf(ss,"%f %f %f %f",&a[0],&a[1],&a[2],&a[3]);if (i==3 && a[0]>0 && a[1]>0 && a[2]>0) break;if (i<3) printf("Number of data less than 3\\n\\n");if (i>3) printf("Number of data ...

c语言超出数组长度赋值
至于越界的问题,C语言是不会检查你下标是否越界的。数组在内存中是一段连续的空间,当你使用下标 0 访问,访问到的是第一个元素,使用 1 访问得到第二个,如此这般。你定义一个3长度的数组,却访问到第9个单位去,这个地方已经不属于你定义的范围了。如果你修改的这个范围外的元素有在其它地方被...

C语言,定义了个数的数组元素个数问题,不懂得不要来乱答。
答案是13。一般问数组元素的个数是指有效元素的个数,等于strlen(str),虽然后面的'\\0'占据一个元素的空间,但是是不属于有效长度的。如果是问数组的长度,就是20,这个和分配的空间大小有关。或者题主可以参考官方的关于strlen函数的表述:网页链接 ...

C语言在数组后面添加结束符'\\0'的小问题~
一个是整型数组,一个是字符数组,不一样的.整型数据不是以\\0结束的,而字符数组最后要存放一个\\0的.如int a[4],可以存放4个int型数据,如int a[4]={1,2,3,4}char a[4],也可存放4个字符,但最后一个字符得为\\0,不然不能正常输入字符串.char a[4]={'a','b','c','\\0'},当然'\\...

c语言,字符数组中最后一个字必须为‘\\0’,为什么错?
c语言中字符数组并没有规定最后一个字符为'\\0',甚至可以不包含'\\0',添加'\\0'作为结束标志是针对于c语言对字符串的处理而言的,因此,字符数组中最后一个字必须为‘\\0’是错误的。C语言中没有字符串类型,字符串是存放在字符型数组中的。在C语言中,是将字符串作为字符数组来处理的。为了测定...

C语言关于字符串长度和元素个数的问题
1. char s[20]="Beijing" ---长度为7,数组个数为20,数组元素个数为8 2. char s[]="Beijing“ ---长度为7,数组大小为8,数组元素个数为8 3. s[]={'B‘,'E','I','J','I','N','G'} *---则因为后面不存在'\\0',所以如果你输出printf("%s \\n",s);这样输出...

相似回答