
一个C语言关于数组的问题,求解答
charstr[9]={"good,bye"};//这里只有8个字符,问什么数组的元素个数必须要是9呢?改成8就出现错误了charstr[2][9]={"good,bye...
char str[9]={"good,bye"};//这里只有8个字符,问什么数组的元素个数必须要是9呢?改成8就出现错误了
char str[2][9]={"good,bye"};//这个二维数组是2行9列,那就可以存18个字符啊?但是为什么如果改为[2][8]就不正确了。而且我觉得存储8个字符用[2][4]就够了啊。
还有两个小问题 就是char (*s1)[10] 这条语句是什么意思?是定义了一个指针?
puts(s1[0]);
puts(s1[1]);
这两个语句又是什么意思 展开
char str[2][9]={"good,bye"};//这个二维数组是2行9列,那就可以存18个字符啊?但是为什么如果改为[2][8]就不正确了。而且我觉得存储8个字符用[2][4]就够了啊。
还有两个小问题 就是char (*s1)[10] 这条语句是什么意思?是定义了一个指针?
puts(s1[0]);
puts(s1[1]);
这两个语句又是什么意思 展开
展开全部
1 第一个问题, 每个字符串末尾都默认有一个'\0'字符,因此声明的时候多一个字符
2 二维数组初始化,不指定第一行,和第二行,默认之存储在第一行,第二行全部为零
char str[2][9]={"good,bye","good,bye"};这样就可以了,和第一中情况一样,就不能改为[2][8]
3 定义了一个数组指针,可以指向一位数组,比如:
char *p;
char (*s1)[10];
p=s1;
那么p[0]就相当s1[0],p[2]就相当于s1[2]以此类推
2 二维数组初始化,不指定第一行,和第二行,默认之存储在第一行,第二行全部为零
char str[2][9]={"good,bye","good,bye"};这样就可以了,和第一中情况一样,就不能改为[2][8]
3 定义了一个数组指针,可以指向一位数组,比如:
char *p;
char (*s1)[10];
p=s1;
那么p[0]就相当s1[0],p[2]就相当于s1[2]以此类推
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言字符串默认会在末尾加一个字符'\0'表示字符串结束,所以需要9个字符
二维数组一样的道理
char(*s1)[10]表示定义char类型的指针数组,就是10个char类型的指针
puts(s1[0]) 表示从把s1中串输出
二维数组一样的道理
char(*s1)[10]表示定义char类型的指针数组,就是10个char类型的指针
puts(s1[0]) 表示从把s1中串输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字符数组要比实际字符数多出一个,是给'\0'留的位置,不然无法判断在哪里结束字符串。
二维数组也是这个道理。
char (*s1)[10] 定义的是指针数组s1,数组s1的元素类型是指向字符的指针,也就是字符串。
puts()函数就是输出字符串,puts(s1[n])就是输出数组s1的某个元素。
二维数组也是这个道理。
char (*s1)[10] 定义的是指针数组s1,数组s1的元素类型是指向字符的指针,也就是字符串。
puts()函数就是输出字符串,puts(s1[n])就是输出数组s1的某个元素。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字符后边系统会自动加一个‘\0’,所以需要多一个空间
你那样赋值,只会把那8个字符赋给第一个数组
第一了一个指针数组
puts是输出吗?我不常用C语言的函数。那么那两句的意思分别是输出s1数组里第一个和第二个数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个问题,因为字符串是以\0结尾的,没有\0就没有结尾,所以比看上去多一个字符。
第二个问题,这个是二维数组是一个2行9列的表格差不多~所以也是会报错~因为他的初始化格式的{“....”,“....”}你的还是算一个的~
第二个问题,这个是二维数组是一个2行9列的表格差不多~所以也是会报错~因为他的初始化格式的{“....”,“....”}你的还是算一个的~
追问
第二个问题还不太明白- -!能否再详细一点 good,bye
就算这个字符串实际是有9个字符,但是二维数组用[2][5]也不行吗?
追答
char str[2][9]={"good,bye"};在初始化的时候如果的格式是={"good,bye","good,bye"}这样子才是全部初始化,那显而易见的就是,你的只是初始化了第一个对不对,那第一个你定义少了是不是还是报错呢~
char (*s1)[10] 是定义了一个指针,指向的是一个数组,puts是输出~就是输出s1的第一个和第二个值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询