一:问:sizeof是什么?
sizeof
是一个 C 语言的运算符,用于计算数据类型或变量占用的字节数。它返回一个 size_t
类型的值,代表所传递的表达式或类型的大小(以字节为单位)。
sizeof
运算符通常用于以下几种情况:
-
获取数据类型的大小:可以使用
sizeof
运算符来获取各种数据类型的大小,如sizeof(int)
、sizeof(char)
等。例如,sizeof(int)
将返回一个表示整数类型的字节数的值。 -
获取变量的大小:可以使用
sizeof
运算符来获取变量在内存中占用的字节数。例如,sizeof(variable)
返回变量variable
的大小。 -
计算数组的大小:可以使用
sizeof
运算符来计算数组的大小(元素个数乘以每个元素的大小)。例如,sizeof(array)
返回数组array
占用的总字节数。
需要注意的是,sizeof
运算符在编译时求值,并且返回的结果是一个常量表达式,因此不能将其用于动态运行时大小的计算。
#include<stdio.h>
int main(){
int arr[3] = {1,2,3};
int i;
int *p;//先定义一个指针
p = arr;//
int length=sizeof(arr)/sizeof(arr[0]);
printf("数组的长度:%d\n",length);
printf("%d\n",*p);//数组的第一个数值
printf("sizeof arr is %d\n",sizeof(arr));//3*4=12个字节 ,3 个整数 * 4 字节/整数
printf("sizeof p is %d\n",sizeof(p));//os 用8个字节表示一个地址 ,64位系统指针的大小
printf("sizeof int* is %d\n",sizeof(int*));//只要是指针通常是8个字节
printf("sizeof int is %d\n",sizeof(int));//int 类型通常是4个字节 大小
printf("sizeof char is %d\n",sizeof(char));//char类型通常是1个字节大小
return 0;
}
二:sizeof 求数组内的数值个数
int length=sizeof(arr)/sizeof(arr[0]);
sizeof(arr) :这是一个名为arr的数组,同时可以求它的数组总长度
sizeof(arr[0]:arr数组第一个元素的空间大小,单个数值的长度。