通过p访问到字符s:
#include <stdio.h>
int main()
{
char *arr[3] = {"hello", "test", "hahaha"};
char **p = arr;
printf("%c", *(*(p + 1) + 2));
}
方法:把char *看成一个类型type:则转换成 type arr [3]和 type *p用一级指针结果显而易见;
同上:
sizeof(arr)=12 指针char *为4所以3*4=12
sizeof(*(arr+0))=4 arr能做加减所以arr是个指针所以为4
sizeof(*(*(arr+0)+1))=1 arr解一次是hello首地址再解一次是e
sizeof(*p)=4 *p是指针所以是4、
3.char ch , float farr[4], short sarr[3][4], int *parr[6], short *psarr[3][4], int *ptr;写出对应类型的指针存放下列地址值:
char *p = &ch float *p=farr float (*p)[4]=&farr short (*p)[4]=sarr int **p=&ptr
short *p=sarr[0] int **p=parr short *(*p)[4]=psarr short **p=psarr[0] int *(*p)[6]=&parr (基本操作:设置类型为type)