/*************************************************************************
* File Name: testArrayPointer.c
* Author: kent
* Mail: kent1411390610@gmail.com
* Created Time: Thu May 3 19:59:11 2018
* Content: sizeof of ArrayPointer
************************************************************************/
#include<stdio.h>
int main(){
int* a[5];
int (*p)[5];
int *pointer = NULL;
printf("the size of (int*)arrayPointer[5] : %lu\n",sizeof(a));
printf("the size of (*p)[5] : %lu\n",sizeof((*p)));
printf("the size of a NULL pointer : %lu\n",sizeof(*pointer));
}
输出如下:
输出
-
int* arrayPointer[5]
指针数组,本质是数组,存的是指向整型元素的指针.64bit 机器指针大小为 8 字节.所以5*8 = 40 -
int (*p)[5]
数组指针,指的是数组名的指针,即数组首元素地址的指针。 即是指向数组的指针。 p为指向数组的指针,又称数组指针.数组每个元素为整型,所以 4*5 = 20
记住:
指针数组,本质是数组,存的是指针
数组指针,本质是指针,指向的是数组
网友评论