C语言sizeof实例解析
首先,在这先 简单的介绍一下c语言中的sizeof运算符(它不是一个函数),隶属于头文件:#include<stdio.h>
sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 记住,其返回值取决与操作数的类型。
下面将以一个实例讲解:
首先让我们看看输出结果:

就输出结果而言,需要注意的有三点:
1/sizeof返回的结果取决于操作数的类型。
2/可用上面的方式求数组大小 :
3/执行完sizeof(i++)后i的值并没有进行自加(因为sizeof仅仅是一个操作符,而不是一个函数,sizeif(i++)获取的是i++的字节数,因此,在编译的时候i++直接被4所代替,因此i++根本就没有执行)。
sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 记住,其返回值取决与操作数的类型。
下面将以一个实例讲解:
#include <stdio.h>
int main(){
int i = 2;
char arr0[] = {1,2,3,4,5,6,7,8};
int arr1[] = {1,2,3,4,5,6,7,8};
printf("------char type arr0--------- \n");
int num0 = sizeof(arr0);
int num1 = sizeof(arr0[0]);
int num = sizeof(arr0)/sizeof(arr0[0]);
printf("sizeof(arr0) : %d \n",num0);
printf("sizeof(arr0[0]) : %d \n",num1);
printf("num : %d \n",num);
printf("------int type arr1-----------\n");
num0 = sizeof(arr1);
num1 = sizeof(arr1[0]);
num = sizeof(arr1)/sizeof(arr1[0]);
printf("sizeof(arr1) : %d \n",num0);
printf("sizeof(arr1[0]) : %d \n",num1);
printf("num : %d \n",num);
printf("------------------------------\n");
printf("i : %d \n",i);
printf("sizeof(i++) : %d \n",sizeof(i++));
printf("i : %d \n",i);
return 0;
}
首先让我们看看输出结果:
就输出结果而言,需要注意的有三点:
1/sizeof返回的结果取决于操作数的类型。
2/可用上面的方式求数组大小 :
int num = sizeof(arr0)/sizeof(arr0[0]);3/执行完sizeof(i++)后i的值并没有进行自加(因为sizeof仅仅是一个操作符,而不是一个函数,sizeif(i++)获取的是i++的字节数,因此,在编译的时候i++直接被4所代替,因此i++根本就没有执行)。
版权声明:本文为laozhuxinlu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。