C/C++的数组名
數(shù)組名相當(dāng)于指向數(shù)組第一個元素的地址。
數(shù)組名不是變量,是地址常量,不能為其賦值。
如下:
1)一維數(shù)組中
對于數(shù)組 a[5] = {1, 2, 3, 4, 5};
數(shù)組名a相當(dāng)于指向第一個元素a[0]的指針。即 a 與 &a[0] 等價。
2)二維數(shù)組中
int a[2][3] = {1, 2, 3, 4, 5, 6};
int __; // 完成對p的定義
p = a;
分析 p = a;
a 相當(dāng)于指向a[2][3] 的“第一個元素”的地址
所謂“第一個元素”是指第一個“包含3個int型元素的一維數(shù)組”
所以a 相當(dāng)于一個“包含3個int型元素的一維數(shù)組”的地址
因此p的基類型應(yīng)該是:”包含3個int型元素的一維數(shù)組“
定義一個指向“包含3個int 型元素的一維數(shù)組”的指針變量:
int (*p)[3];
注意:
int *p = &a[0];
a++是沒有意義的,但p++會引起p的變化
p可以指向數(shù)組最后一個元素以后的元素
指針做加減運算時一定注意有效的范圍。
如
int a[5];
int *p = &a[0];
p--;
*p = 6; // damage
轉(zhuǎn)載于:https://www.cnblogs.com/aqing1987/p/4205171.html
總結(jié)
- 上一篇: 胡适:一个最低限度的国学书目
- 下一篇: 利用navicat 进行 mysql建表