C语言,这题D吧,因为字符串复制只能用strcpy函数,就是strcpy(str[1],"gues

2025-02-25 19:41:07
推荐回答(3个)
回答1:

选D,其余都无错。但你关于“降维”的理解是错误的:str[1]...虽然是指针,但不能简单地认为二维数组的第一维是普通指针,它是那一行的数组名,只是可以作为指针来用,即可以用指针操作的一些方法来操作,但并不具备普通指针的所有性质。

回答2:

首先谁告诉你字符串复制只能用strcpy的
另外谁告诉你数组名就是指针了
char str[3][10]是一个二维数组
str[1]是一维数组类型是char [10]而不是char *
记住那是数组不是指针
你char s[10];
s="guest";会是正确的吗?
再次记住,那是数组不是指针,不是指针,谁告诉你是指针的你就找谁去

回答3:

你把数组名和指针混淆了。
数组名和指针,使用形式上,除了数组名不允许被赋值以外,其他形式是完全相同的
根本上来讲,数组名不仅不许被赋值,就连类型名都不同。

int a[4],*p;
p=a;
从p=a执行完毕以后,任何时候,用随时可以把a和p进行替换(例外就是p可以被赋值,a不行)
但是,a的类型是int [4],p的类型是int*。

如果是应付考试的话,类型不同这段不用考虑了。

===========================
确实选D
str[1]是数组名,下属10个元素,对应str[1][0]~~str[1][9],数组名,不许被赋值