关于c语言我不懂的问题 10

选择以下错误的语句A.char*str[]={“guest”};B.charstr[][10]={“guest”};C.char*str[3];str[1]=“guest... 选择以下错误的语句
A.char *str[ ]={“guest”};
B.char str[ ][10]={“guest”};
C.char *str[3];str[1]=“guest”;
D.char str[3][10];str[1]=“guest”;
这四个都不懂,希望解释详细一点,感激不尽
展开
 我来答
jdq_37
2012-09-15 · TA获得超过996个赞
知道小有建树答主
回答量:658
采纳率:0%
帮助的人:954万
展开全部
A
声明一个数组,数组中每个元素是一个指向char的指针,初始化为1个元素的数组,此元素指向“guest”char字符串的第一个char字符;

B
声明一个数组,数组中每个元素是一个char数组,初始化为1个元素的数组,此元素被初始化为值为“guest”的char数组;

C
声明一个3个元素的数组,数组中每个元素是一个指向char的指针;为第1个元素赋值,此元素指向“guest”char字符串的第一个char字符;

D
声明一个3个元素的数组,数组中每个元素是10个char类型的数组;为第1个元素赋值,此元素为值为“guest”的char数组;

D是错误的,C语言不支持为数组直接赋值。

楼主参考。
13203200199
2012-09-15 · TA获得超过220个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:186万
展开全部
错误答案是D;
char *str[ ]={“guest”};表示str是一个指针数组(即存放地址的数组),并将“guest”字符串的首地址存入str[0];

char str[ ][10]={“guest”};此处str为一个char类型的数组,str[0 ][1]='g';str[0 ][2]='u';
str[0 ][3]='e'; str[0 ][4]='s'; str[ 0][5]='t';其余都为‘\0’;

char *str[3];str[1]=“guest”;这和第一个差不多,只是数组大小不同;并将“guest”字符串的首地址存入str[1];

char str[3][10];str[1]=“guest”;此处str为一个char类型的数组,这句定义没有错误,这还表示定义了三个长度为10的一维数组,在c语言中,二维数组的前一位如这里的“str[0],str[1],str[2]”,表示的是这一维度的首地址,而数组首地址是不能够被改变的!这个语句是不合法的!(企图将“guest”的首地址赋给str[1],企图改变这个一维数组的首地址,不合法!)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
creater2012
2012-09-15 · TA获得超过156个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:153万
展开全部
A。正确
B。正确
C。正确
D。错误

一个字符串赋值给指针,实际上这个指针指向的是这个字符串的首地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西雅图的风12392cc2
2012-09-15 · TA获得超过507个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:99.3万
展开全部
BC错。D定义一个3*10的数组,然后把第一行赋值为guest。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式