问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

二维数组名不能赋值给二级指针- -

发布网友 发布时间:2022-06-01 18:15

我来回答

1个回答

热心网友 时间:2023-10-10 23:45

我理解你的问题是不是这样:int a[3][4]; int**p = a;为什么会报错是吧?

回答:你理解的是对的,但是错在,a是指向一维数组,p是指向int*,这两个不等价。
a指向一维的int数组,内存大小为sizeof(int)*数组长度;
而p只是指向一个int*类型指针,内存大小为4。指针指向的类型实际是不同的。
这里你可能又有疑惑,为啥int b[10]一维数组就可以赋值给int* pb = b呢,这是因为数组退化到指针,只有第一维的数组可以不确定数组长度,可以直接作为首地址。有“数组名能否作为右值”的讨论。
如果想实现指针赋值,可以这样int(*p)[4] = a;
这样定义你就可以理解,p是一个指针,指向int[4]一维数组追问大神,我刚测试了一下,定义了一个 char **p,a[3][4];然后用sizeof分别求出它们所占的内存大小,分别为4和12,确实是指向的实际类型不同。但是你说a指向一维数组,这里的指向,我是不是可以理解为a也是个指针?二维数组在内存中是连续存放的,这个指针a指向的就是这个连续地址的首地址,而二级指针指向的只是一个一维指针的地址。我这样理解有没有问题?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“笑指旧山归路长”的出处是哪里 PCB为什么要拼板,PCB拼板打样有哪些好处? 绘制紫外吸收光谱时,我发现最大吸收波长是333nm,此时吸光度为4.01 对吸光度测量值有何影响? 陆垚知马俐的歌词是什么? 玫瑰花水中的养殖方法 陈年柚子茶如何做 陈年柚子茶的制作方法 在答题卡上改题号是指那一道题扣分还是整个卷子都没? ...考试时我写到了卷子上,会怎么样?会不会按抄袭 高考时在卷子上不小心画了道怎么办? 关于‘数组名是个地址常量所以不能对数组名赋值’的理解 所有的数组名都是指针而且是常量指针,不能对其赋值!这句话是否正确? 二维数组名不能赋值给一个指针变量? c语言中数组不是不能被直接赋值吗?为什么这个结构体可以?而且怎么输出第二个同学的名字呢? 数组只能输入不能赋值 C语言中结构体中的数组,不能直接赋值吗? 数组名不允许被赋值(做左值)的问题 .数组不可以利用数组名对所有元素进行整体赋值是正确的吗? 为什么c语言中,数组名是一个地址常量,不能对它进行赋值运算 为什么数组名不能为左值,不能赋值 NBA里面打球最厉害的人是谁啊? NBA里面都有哪些奖项 NBA里面有许多天赋球员,那谁又是勤奋球员的代表? NBA里面哪个队员比较强? 英语语法好难啊,过去式有没有人讲解一下 过去时是什么意思 索爱手机收不了服务信息,发送报告也开不了,怎么才能解决 连翘结果吗 海尔流媒体是什么? 深山采药人攀石钻林日挣多少元? 为什么不能把一个char数组名赋值给另一个char数组名? 二维数组名为什么不能直接赋值给二级指针。 在C语言中,为什么数组之间不可以直接赋值,而结构体之间可以直接赋值,求了解的给详细解答一下,谢谢!!! 最简单炒核桃仁的方法 小米手机音乐功能怎么样啊,戴耳机那种 现在决定手机音乐的是什么元件啊 我用小米1s下了个qq音乐播放器,用了下就卸载了,卸载之后我在打开小米自带的音乐播放机就卡的要死 雪花女神龙和雪花神剑的创作年代? 求普通智能机能用的小米音乐播放器! 雪花女神龙中雪花剑法和龙魂刀法一共几招 都是什么 雪花女神龙里面都有哪些武器 有一篇关于爱情的散文诗,致橡树。有谁知道全文 雪花女神龙上官燕练的是什么武功 雪花女神龙中,古木天回忆铸造刀剑是那一集 寻找致橡树文章. 致橡树译文中描写了哪几个意象这些意象分别象征什么样的爱情? 舒婷的《致橡树》是什么时候哪个出版社出版的? 中国台湾男歌手张信哲唱的好听的歌有哪些? 张信哲的好听的歌? 张信哲哪些粤语歌好听 张信哲唱的说谎这首歌的歌词