二维数组的有关指针:值和地址
2013-05-21 18:12
295 查看
二维数组的有关指针:
表现形式: 含义:
a 二维数组名,指向一维数组a[0],即0行首地址
a[0], *(a + 0), *a 0行0列元素地址
a + 1, &a[1] 1行首地址
a[1], *(a + 1) 1行0列元素a[1][0]的地址
a[1] + 2, *(a + 1) + 2, &a[1][2] 1行2列元素a[1][2]的地址
*(a[1] + 2), *(*(a + 1) + 2), a[1][2] 1行2列元素a[1][2]的值
表现形式: 含义:
a 二维数组名,指向一维数组a[0],即0行首地址
a[0], *(a + 0), *a 0行0列元素地址
a + 1, &a[1] 1行首地址
a[1], *(a + 1) 1行0列元素a[1][0]的地址
a[1] + 2, *(a + 1) + 2, &a[1][2] 1行2列元素a[1][2]的地址
*(a[1] + 2), *(*(a + 1) + 2), a[1][2] 1行2列元素a[1][2]的值
//二维数组指针:值和地址问题,注意理解 # include <stdio.h> int main() { int a[2][3] = {1, 2, 3, 4, 5, 6}; printf("%d %d\n", a, *a);//0行首地址和0行0列元素地址 printf("%d %d\n", a[0], *(a + 0));//0行0列元素地址 printf("%d %d\n", &a[0], &a[0][0]);//0行首地址和0行0列元素地址 printf("%d %d\n", a[1], a + 1);//1行0列元素地址和1行首地址 printf("%d %d\n", &a[1][0], *(a + 1) + 0);//1行0列元素地址 printf("%d %d\n", a[2], *(a + 2));//2行0列元素地址 printf("%d %d\n", &a[2], a + 2);//2行首地址 printf("%d %d\n", a[1][0], *(*(a + 1) + 0));//1行0列元素 //以上虽然值一样但是含义不同,认真理解 return 0; }
相关文章推荐
- 指针(内存大小和数据类型无关,和系统操作位数有关),对象,地址,和系统操作位数的关系
- 最简单的指针与地址练习(二维数组)0
- 彻底搞清C/C++中一维数组,二维数组,指针,数组指针和指针数组以及指向指针的指针,行地址和列地址之间的关系
- C语言二维数组剖析【元素及元素地址的指针操作】
- C语言中有关二维数组的指针问题
- 二维数组中有关指针总结
- C++,二维数组与指针,二维数组名是不是首地址? 之二
- C++二维数组 取地址 复制给 二维指针
- 指针获取二维数组中的首元素地址
- C++二维数组,指针常量与常量指针、常量参数传递、常量变量存储地址
- 关于二维数组地址和指针之间赋值的问题
- 有关动态创建释放二维数组,以及指向数组的指针问题集合
- 关于二维数组首地址赋予指针的问题
- 有关指针函数不可以返回局部变量的地址的三种解决方法
- 二维数组相关,指针,地址
- 有关动态创建释放二维数组,以及指向数组的指针问题集合 .
- C语言二维数组的指针及首地址问题
- C++,二维数组与指针,二维数组名是不是首地址?
- 有关动态创建释放二维数组,以及指向数组的指针问题集合
- 彻底搞清C/C++中一维数组,二维数组,指针,数组指针和指针数组以及指向指针的指针,行地址和列地址之间的关系