關(guān)于sizeof的使用,注意其不是函數(shù),是一個操作符關(guān)鍵字
程序一:
#include <stdio.h>void fun(int arr[10]){printf("fun::%d\n", sizeof(arr));//}int main(){int i = 10;short a = 0;int arr[10];fun(arr);printf("%d\n", sizeof(arr));//40 printf("%d\n", sizeof(a++));//2printf("%d\n", a);//0printf("%d\n", i);//10system("pause");return 0;}
結(jié)果:
fun::4
40
2
0
10
請按任意鍵繼續(xù). . .
程序二:
定義一個數(shù)組arr,輸出arr和&arr的區(qū)別#include <stdio.h>int main(){int n = 10;int arr[10] = {0};int *p = NULL;int (*q)[10] = NULL;printf("%d\n", sizeof(n));//4printf("%d\n", sizeof(int));//4printf("%d\n", sizeof(arr));//40 printf("%d\n", sizeof(&arr));//4printf("%p\n", arr);//00D4FACC &arr[0],它表示數(shù)組首元素的地址printf("%p\n", &arr);//00D4FACC,它表示數(shù)組的地址,這兩個表示意義不同p = arr;q = &arr;printf("p+1=%p\n",p+1);//p+1=007DF958printf("q+1=%p\n",q+1);//q+1=007DF97Creturn 0;}
結(jié)果:
4
4
40
4
00F5F7C8
00F5F7C8
p+1=00F5F7CC
q+1=00F5F7F0
請按任意鍵繼續(xù). . .