案例:
int matrix[3][10];
matrix[1][5]
matrix: 指向包含10个整型元素的数组的指针, 指代第一行, 第一行是子数组
matrix+1: 指向包含10个整型元素的数组的指针+1表示第二行, 第二行是子数组
*(matrix+1): 对matrix+1进行间接访问操作, 选择第二行的子数组
*(matrix+1)+5: 这个指针比*(matrix+1)子数组上移动5个
*(*(matrix+1)+5) 和*(matrix[1]+5)相同, 对*(matrix+1)+5进行简介访问操作
-----------------------------------------------------------------------------------------
源码:
1 #include<stdio.h>
2
3 int main()
4 {
5 int a[4][4]=
6 {
7 1, 2, 3, 4,
8 5, 6, 7 ,8,
9 9, 10, 11, 12,
10 13, 14, 15, 16
11 };
12 int (*ps)[4]=a;
13
14
15 printf("\nps==%x\n", ps);
16 printf("\nps+1==%x\n", ps+1);
17 printf("\nps+2==%x\n", ps+2);
18 printf("\nps+3==%x\n", ps
C语言数组名和指针的关系
最新推荐文章于 2024-06-06 12:00:00 发布
本文深入探讨了C语言中数组名与指针之间的关系,阐述了数组名实际上可以被视为指向数组首元素的指针,讨论了数组与指针在内存分配、类型转换及解引用操作等方面的相似性和差异性,帮助读者更好地理解C语言的基础概念。
摘要由CSDN通过智能技术生成