55问答网
所有问题
C语言二维数组的地址为什么 不可以赋值给指针变量?
如题所述
举报该问题
推荐答案 2019-12-11
二维数组
的数组名和一维数组的数组名不一样。
一维数组名a表示其首地址,指针类型是(int *)。
二维数组名d表示其行指针,指针类型是(int (*)[7])。
所以你要定义指针去用二维数组名赋值,需要定义指针int (*k)[7];不是int *k。
或者你把二维数组当成一维数组来看(二维内部地址是连续的,和一维一样),这样int *k;k=&d[0][0];之后通过k++遍历二维数组所有值。
追问
有缘啊,你已经回答了我两个问题了
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/c8IQRcR8RQQ8Qc4eFQ.html
其他回答
第1个回答 2019-12-11
应该可以的。
相似回答
为什么不能
把
二维数组
名/行的首
地址
赋
给指针?
答:
因为在
C
编程系统中,对于二维数组会看成数组元素为一维数组的一维数组,即对于二维数组aa[2][3],系统会看成aa[0]和aa[1],而aa[0]和aa[1]中分别包含三个元素,这就是系统对于
二维数组的
处理;所以直接把二维数组名赋给一个普通的
指针变量
,这个指针是指向元素aa[0]的,但实际上呢,aa[0]不...
C语言中二维数组
名能否直接赋
给指针变量
答:
这样是不行的。二维数组的指针必须限定第一维的大小
。所以:int (*ppr)[3];ppr = fool;这样才可以。
数组可以赋值给指针
吗?(求高手) 例如: int num[10],*pn; pn=num...
答:
数组名可以代表
数组的
首
地址
,num就是num数组的首地址,pn声明为一个
指针变量
,它的值直接指向(points to)存在电脑存储器中另一个地方的值,也就是个地址。因此num的值是
可以赋值给
pn的。
C语言
将
地址赋值给指针变量
答:
取决于p的类型。struct stu_type p=&stu1;这里的*是和类型一起的,用来定义,而非初始化。等效于 struct stu_type p;p=&stu1;至于去掉,如果写成struct stu_type p=&stu1;绝对会报错。不存在你说的去掉和加上结果不变。
在
C语言中
能否直接
给指针
指向的数据
赋值?为什么?
答:
可以,但int *p;*p=7;这样不行。因为“能直接
给指针
指向的数据”赋值,而这里的p还没有指向,所以
不能赋值
,这种指针有个名字叫“悬浮指针”,是不能给它赋值的。这样才可以:int a,*p=&a;*p=7;实际上就是使a等于了7。
大家正在搜
一维数组怎么赋值给二维数组
c语言指针指向二维数组
c语言二维数组的指针
二维数组指针赋值
指针数组的元素怎么赋值
指针变量可以直接赋值吗
指针给数组赋值
怎么把二维数组用指针
二维数组指针的使用
相关问题
C语言中二维数组名能否直接赋给指针变量
二维数组名不能赋值给一个指针变量?
为什么不能把二维数组名/行的首地址赋给指针?
二维数组名为什么不能给二级指针赋值
c语言中,可以将一个地址赋给一个指针变量吗?
c语言里面为什么不能把指针赋给数组名?
为什么常量的地址不能付给普通指针变量?
在C语言中能否直接给指针指向的数据赋值?为什么?