文章目录
一、sizeof的解析
二、上代码
/*
sizeof(ar)=整个数组占用的存储单元数(一字节为单位)
sizeof(ar[0])=第一个数组元素暂用的存储单元数,其实就是每个数组元素占用单元数
对于函数和sizeof结合起来的话:数组作为参数的时候退化为指针,指针就是8个字节的,【在32位系统中为4字节;在64位系统中为8字节】
int calc(char a[10])
{
printf("%d\n",sizeof(a));
return 0;
}
int main()
{
char a[10]={"hello"};
calc(a);
return 0;
最后这段代码结果为8.
*/
#include<stdio.h>
int main(){
int i[10]={1,2,3,4};
char z[10]= {"aa"};
char c[]={"aa"}; //双引号占一个字节
char n='a' ;
printf("sizeof(i)=%d\n",sizeof(i));//40
printf("sizeof(z)=%d\n",sizeof(z));//10
printf("sizeof(c)=%d\n",sizeof(c));//3 因为为字符串,所以数组为 a a \0 , 所以为三个字符
printf("sizeof(i[0])=%d\n",sizeof(i[0]));//4
printf("sizeof(c[0])=%d\n",sizeof(c[0]));//1
printf("sizeof(z[0])=%d\n",sizeof(z[0])); //1
printf("sizeof(n)=%d\n",sizeof(n)); //1
printf("sizeof('a')=%d\n",sizeof('a')); //4 为什么这个为4呢?因为标准c规定c语言中字符常量是Int类型
}