二维数组的数组名是什么(一维数组名,二维数组名有何区别)

本文目录
一维数组名,二维数组名有何区别
名称是我们定义的,所以没有什么区别。不过是定义的时候一维数组名有一个的地址。
或许还是没有解释清楚?
就这么说吧,一维数组:*a=a;
二维数组:
**a=*a
C语言二维数组名不懂
二维数组的数组名代表了一个指针,这个指针指向的是一维数组,不是另一个指针。
例如,
int a;
int (*p);
p = a; // 这里可直接赋值,而*p得到的是个一维数组
这里p 指向了 a的首地址
由于C里面,二维数组的数据在内存中是连续存放,我们在编程时会简单处理
int *p = (int*)a; // a所指的一维数组的首地址,也是整个二维数组的首地址
这样 p++ 可以逐个访问数组的int元素;
但我们很少这样做
int **p = (int**)a; // 因为这样没啥意义
C语言二维数组名的问题
二维数组名是指定长度的一维数组的指针(常量指针),而一维数组本身是个指针,所以一般叫指针的指针,但其实有差异的。
w的类型是 int (*)
*(*(w+1))等价于w,谁和你说不是?你如果怀疑自己做个测试不就完了。
w+1等价于&w 和w一样
*(w+1)等价于&w ,类型 int * ,注意 w+1和 *(w+1)地址是一样的但是类型不同
*(*(w+1))等价于w
*(w+1)就是在第二行地址,类型是int *,它是个整体,使用它当做一维数组读取必须加括号
正确的写法是:(*(w+1))
如果不加括号意义就不同了,*(w+1) 那就成了第二行第5个元素作为指针,但是实际上该元素是个整数,会造成非法地址访问。

更多文章:
字体大小在哪里调整(电脑字体大小在哪里调调电脑字体大小的方法)
2026年11月3日 04:40
网页页面设计的技巧有哪些?急求,jsp采用框架技术设计页面,如何写代码才能实现点击左侧框架内的链接,右侧框架内显示相应网页呢
2026年11月3日 03:00
selection是什么品牌(selection unique是什么葡萄酒)
2026年11月3日 01:50
四分之一x的补码怎么求(计算机组成原理,的原码补码什么,求解现在这些题目都看不懂了)
2026年11月2日 23:50
interpl(MATLAB中插值函数interpl怎么定义)
2026年11月2日 23:30
四舍五入用哪个函数(用于进行四舍五入的数学函数是以下哪一项)
2026年11月2日 20:10
![path的音标(音标[pa:θ]是什么单词)](/static/images/nopic/10.jpg)





