int main(int argc, const char * argv[]) {
//sizeof
/*
sizeof(数据类型)
此运算符功能:返回值就是该数据类型所占的字节数。
sizeof(变量名)
此运算符功能:返回值就是该变量所占的字节数。
*/
int arr[]={3,4,5,6,7,6,8,42,9};
int* p1 = &arr[0];
int a = sizeof(p1);//p1本身是一个变量名,这里求的是p1变量所占字节数,同时,该变量里面存储的是arr【0】的地址
int a2 = sizeof(*p1);//*p1就是指向的元素本身,因此,这里求的是arr【0】这个元素的占用字节数
int b = sizeof(arr);//求一个数组占的字节数
int c = sizeof(arr)/sizeof(int);//求数组的长度,有多少个元素
printf("a=%d ; a2=%d ; b=%d ; c= %d \n",a,a2,b,c);
//地址长度根据系统不一样,有不同的长度64--》8;32--》4;16--》2;
return 0;
}
output:
a=8 ; a2=4 ; b=36 ; c= 9
Program ended with exit code: 0