C语言,这题D吧,因为字符串复制只能用strcpy函数,就是strcpy(str[1],"gues
C语言,这题D吧,因为字符串复制只能用strcpy函数,就是strcpy(str[1],"guest")但从另一个角度来说,我记得二维数组不是可以降维使用么?二维数组的s...
C语言,这题D吧,因为字符串复制只能用strcpy函数,就是strcpy(str[1],"guest")但从另一个角度来说,我记得二维数组不是可以降维使用么?二维数组的str[0],str[1],str[2]不都是每一行的行指针么,每一行又可以看成是一个特殊的一维数组,那么行指针str[1]指向了这个串的首地址,要是用行指针来解释的话,我觉得D就是对的呀?能清楚的讲一下这题么?谢谢
展开
展开全部
选D,其余都无错。但你关于“降维”的理解是错误的:str[1]...虽然是指针,但不能简单地认为二维数组的第一维是普通指针,它是那一行的数组名,只是可以作为指针来用,即可以用指针操作的一些方法来操作,但并不具备普通指针的所有性质。
更多追问追答
追问
嗯,关于您说“其一”那个,就是char *p="guest"那么第一个元素的地址就赋给了指针p,是这意思吧
追答
char *p="guest"就是把g的地址赋给了p。(上传后发现表述有误,所以把一些句子删除了)
展开全部
首先谁告诉你字符串复制只能用strcpy的
另外谁告诉你数组名就是指针了
char str[3][10]是一个二维数组
str[1]是一维数组类型是char [10]而不是char *
记住那是数组不是指针
你char s[10];
s="guest";会是正确的吗?
再次记住,那是数组不是指针,不是指针,谁告诉你是指针的你就找谁去
另外谁告诉你数组名就是指针了
char str[3][10]是一个二维数组
str[1]是一维数组类型是char [10]而不是char *
记住那是数组不是指针
你char s[10];
s="guest";会是正确的吗?
再次记住,那是数组不是指针,不是指针,谁告诉你是指针的你就找谁去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把数组名和指针混淆了。
数组名和指针,使用形式上,除了数组名不允许被赋值以外,其他形式是完全相同的
根本上来讲,数组名不仅不许被赋值,就连类型名都不同。
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],数组名,不许被赋值
数组名和指针,使用形式上,除了数组名不允许被赋值以外,其他形式是完全相同的
根本上来讲,数组名不仅不许被赋值,就连类型名都不同。
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],数组名,不许被赋值
更多追问追答
追问
哦,这个字符型的二维数组,它的str[0],str[1],str[2]是每一行的行指针,比如str[1]这个行指针,就指向str[1][0]~str[1][9]这10个元素它也是这10个元素的数组名,它是常量,不能被赋值,而不能简简单单的认为它是一个char型的,即使是int型的也不能这样做是吧
那我要是想让str[1]这个字符串指向“guest"这个串,应该怎样写呢?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询