欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c语言:sizeof的使用,其不是函数,是一个操作符关键字,定义一个数组arr,输出arr和&arr的区别

程序员文章站 2022-04-18 22:31:05
关于sizeof的使用,注意其不是函数,是一个操作符关键字 程序一: #include void fun(int arr[10])...
关于sizeof的使用,注意其不是函数,是一个操作符关键字

程序一:

#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++));//2
printf("%d\n", a);//0
printf("%d\n", i);//10
system("pause");
return 0;
}

 

结果:

fun::4

40

2

0

10

请按任意键继续. . .

程序二:

定义一个数组arr,输出arr和&arr的区别
#include <stdio.h>
int main()
{
int n = 10;
int arr[10] = {0};
int *p = NULL;
int (*q)[10] = NULL;
printf("%d\n", sizeof(n));//4
printf("%d\n", sizeof(int));//4
printf("%d\n", sizeof(arr));//40 
printf("%d\n", sizeof(&arr));//4
printf("%p\n", arr);//00D4FACC   &arr[0],它表示数组首元素的地址
printf("%p\n", &arr);//00D4FACC,它表示数组的地址,这两个表示意义不同
p = arr;
q = &arr;
printf("p+1=%p\n",p+1);//p+1=007DF958
printf("q+1=%p\n",q+1);//q+1=007DF97C
return 0;
}

 

结果:

4

4

40

4

00F5F7C8

00F5F7C8

p+1=00F5F7CC

q+1=00F5F7F0

请按任意键继续. . .