假设数组起始地址为2000
表现新式 | 含义 | 地址 |
a | 二维数组名,指向一维数组啊【0】,即0行首地址 | 2000 |
a[0],*(a+0),*a | 0行0列元素地址 | 2000 |
a+1,&a[1] | 第1行首地址 | 2016 |
*(a+1),a[1] | 第1行,第0列元素a[1][0]的地址 | 2016 |
a[1]+2,*(a+1)+2,&a[1][2] | 1行2列元素a[1][2]的地址 | 2024 |
*(a[1]+2),*(*(a+1)+2),a[1][2] | 1行2列元素a[1][2]的值 | 元素值为13 |
面试题,各种指针的定义.
1.一个整形数:int a;
2.一个指向整形数的指针:int *a;
3,一个指向指针的指针,它指向的指针指向一个整形数: int **a
4,一个有10个整形数的数组: int a[10]
5,一个有10个指针的数组,每个指针指向一个整形数: int *a[10])
6,一个指向有10个整形数的数组的指针: int (*a)[10]
7,一个指向指针的指针,被指向的指针指向一有10个整形数的数组:int ( **a)[10]
8.一个指向数组的指针,该数组有10个整形指针: int *(*a)[10]
9,一个指向函数的指针,该函数有一个整形参数并返回一个整形数:int (*a)(int )
10,一个有10个指针的数组,每个指针指向一个函数,该函数有一个整形参数并返回一个整数:int (*a[10])(int)
11,一个函数的指针,指向的函数的类型是有两个整形参数并且返回一个函数指针的函数,返回的函数指针指向有一个整形参数且返回整形数的函数:int(* (*a)(int,int))(int)