简单而又易错的C语言问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 03:55:57
下面错误的是:
A,char ss[6][20];ss[1]="right?";
B, char ss[][20]={"right?"};
C, char *ss[6];ss[1]="right?";
D, char *ss[]={"right?"};
看清楚哦,易错哦~~~~~~~~~
*ss[6]和(*ss)[6]具体表示什么啊?我只知道前者是返回指针的数组,后者是指向数组的指针。就是不能彻底明白它的意思,所以解不了什么题目。
char ss[6][20];ss[1]="right?";
这个SS[1]不也是指向第2行的指针吗?把首地址付给指针这错了吗?
如果谁能详细的告诉我,我将加50~100 系统也将给你20分的。谢谢你哦。
我的QQ:191369334寒秋枫叶

A是错的
字符数组除了在定义行可以这样直接初始化外,像A这样初始化是不正确的
C是指针数组,这里相当于把这个字符数组的首地址赋予SS[1]

ss[1]="right?"; 并不是把"right?"的指针赋值ss[1],这样是赋值
如果是赋予指针还要有取地址符&,而且这个也不是指针变量

选A哦,char ss[6][20];ss[1]="right?"; 应该成
char ss[6][20]="right?";

A啊~