今天腾讯笔试考到sizeof的用法,当时有点懵,现在整理一下:
sizeof是一个操作符,功能是计算数据空间的字节数,
即包括数组、变量、类型、结构体等所占内存空间,并用字节数表示。
下面来看一个测试就明白了:
#include <stdio.h> void fn(char aa[100]) { printf("%d\n\n",sizeof(aa)); //数组做参数时,数组名称同指针///因为内存实际上没有为形参数组开辟空间,也就是说100没有实际意义 } int main() { char a[] = "0123456789"; printf("%d\n\n",sizeof(a));//计算字符数组的字符数,以"\0"为结束判断,输出为11 char *b = a; printf("%d\n\n",sizeof(b));//指针变量的sizeof结果均为4 char c[100];//对于静态数组,sizeof直接计算数组大小 printf("%d\n\n",sizeof(c)); fn(a); return 0; }
自己可以做一下测试,输出结果看图: