关于C语言字符数组的问题

A char a[][]={'a','b','c','d','e','f'}; B char a[2][3]='a','b'; B char a[][3]={'a','b','c','d','e','f'}; D char a[][]={{'a','b','c','d','e','f'}}; 哪个语句是对的,求大神详解

第1个回答  2019-12-23
正确选项是
B;
A

D
的错误,都是因为,二维数组
的定义,其一维长度
不能省略,即必须是
a[][n],其中n
可以是任意正整数。
C
的错误是因为,使用
字符
初始化数组时,应加上
花括号{};即
a[2][3]={'a',
'b'};
如果使用
字符串
初始化数组,则可以不加
花括号,如:a[2][3]="ab";
至于B
为什么对呢?

B
项的名称定义符合变量命名要求(字母和下划线开头,由字母、数字、下划线任意组合而成);

B
项的数组定义符合C语言要求,即
其一维长度不可省略。

B
项的数组初始化符合C语言要求,使用
字符
初始化数组,需加花括号。且,因
二维长度省略,所以
数组总长度在初始化时,可任意改变。即该初始化,系统最少会分配
6个元素给数组,即
a[2][3]

关于C语言字符数组的问题
项的数组定义符合C语言要求,即 其一维长度不可省略。③ B 项的数组初始化符合C语言要求,使用 字符 初始化数组,需加花括号。且,因 二维长度省略,所以 数组总长度在初始化时,可任意改变。即该初始化,系统最少会分配 6个元素给数组,即 a[2][3]

关于C语言字符数组的问题
② B 项的数组定义符合C语言要求,即 其一维长度不可省略。③ B 项的数组初始化符合C语言要求,使用 字符 初始化数组,需加花括号。且,因 二维长度省略,所以 数组总长度在初始化时,可任意改变。即该初始化,系统最少会分配 6个元素给数组,即 a[2][3]...

关于C语言二组字符数组问题?
在C语言中定义数组char name[1][20],那么它的内存大小就指定了1行20个字符大小。不能越界赋值或访问!你对错误的代码看到的结果不能说明任何问题。你想要的是动态数组。应该用malloc和realloc函数来实现动态数组,这里有几个注意点:1、你输入的是字符串长度不定且一个字符串可能会包含空格,所以不...

C语言字符数组赋值问题?
} 最后,加上字符串结束符 temp[i]='\\0';关于你的问题:1、C语言里,数组就是用其首地址表示的,所以传地址就相当于传数组 2、C语言认为所有的数据都是二进制存放的,所以可以通过类型强制来任意转换,不过不会改变二进制数值。这里m%2后结果为0或1,int会自动转换为char型数据传给temp[i],...

为什么这道C语言的关于字符数组的题我做错了?高手帮忙看下~~_百度...
\/\/第一,“n位置的开始处”这个说法很不准确,我的理解是:如果n位置是字符'X',那么插入字符后为:Xbbbb(设"bbbb"为插入的字符)\/\/按照你介绍,加上空格这个字符,'o'前面的位置应该是9 \/\/第二,你的字符串太小了,如果str1里的字符为12个,str2里的字符10个,这样插入的话很容易就溢出 \/...

C语言 文件写入 字符数组值 的问题,急问!谢谢
1 直接用int整数表示即:int out[6];这样out[3]=12就合情合理了。2 如果你一定要用字符表示数字,可以使用2维字符数组定义即:char out[][6];这样out[3]就可以表示长度不超过6-1=5个数字形式的字符串了(c\/c++规定字符串最后一个结尾字符为'\\0')。要表示字符串out[3]中的某个字符,可以...

关于C语言中,字符串和数组的一道题
k=1 输出字符串的起始位置为 &w[1][1]对应到 F所在的地址,所以输出FGH,遇到\\0后字符串结束 k=2时字符串起始位置为&w[2][2],对应到K的地址,所以输出KL, 遇到\\0字符串结束 k=3时不满足k<3, for循环结束 所以结果就是FGHKL 程序错误的原因是k没有声明, for循环后没有分号,修改后...

C语言定义字符串数组两个问题
gets(s); for(i=0;i<81;i++){ if(s[i]<=57&&s[i]>=48||s[i]>=97&&s[i]<=102){*p=s[i];p++;} }*p='\\0';puts(s);}这两个程序区别在于i循环的结束条件,前一个是遇到输入字符串的末尾就结束,后一个要处理整个数组所有数据才结束,即使不属于输入的字符串也处理,...

...结果我在数组的时候都超过了字符的数组的长度了
以便判断长度。。。其实就是并不是所有数组都需要加[n]这个长度符号的,这只是最早的C语言不识别动态数组才特意加的(现在的C语言也不支持动态数组,只支持字符数组),动态数组的坏处就是可能占用其他变量内存,但这个在其他语言里编译器替你解决,不需要你操心,c语言不会判定越界。。。

C语言字符数组的比较问题
include <stdio.h>#include <string.h>int main(){ char string1[81]="that"; char string2[81]="these"; printf("%d","these">"that"); 这是比较两个常量字符串"these"和"that"的首地址,谁大谁小是不确定的。 printf("%d",strcmp("these","that")); 这是判断两个常量字符串...

相似回答
大家正在搜