C语言中,sizeof运算符有什么作用?

   更新日期:2024.05.02

sizeof运算符

该运算符在编译阶段就已经起作用了。它以字节为单位返回其操作数的大小。它的操作数可以是数据对象也可以是一个类型。如果是类型那么操作数需要用圆括号括起来。

如:sizeof(int)=4;

扩展资料:

C语言其他运算符:

1、取模运算符%

该运算符有个特性就是只支持整数运算。它的作用就是用左边的操作数除以右边的操作数得到的余数。它对浮点数其他类型不起作用。

如:11%2=1因为11除以2得5余1

2、自增自减运算符++/--

这种运算符的基本作用就是让其操作数增加1或者减去1。这种运算符有两种模式:前缀模式和后缀模式。

前缀模式:运算符放在操作数的前面,在表达式中求值时先将操作数进行加1或者减1操作然后再参与运算。

后缀模式:运算符放在操作数的后面,在表达式中求值时先将操作数参与运算然后再对操作数进行加1或者减1操作。

3、三目运算符?:

顾名思义就是三个操作数的运算符,它的用法时当问号前面的表达式的值为真时,取值为冒号前面的数值,否则取值为冒号后面的数值。由于它的执行效率较高,常被我们用来代替条件语句。

如:x>1?2:3;这句话的意思就是当x的值大于1时,整个表达式的值为2,否则为3。

参考资料来源:百度百科-C语言



通常用来计算一个变量或者类型的大小的,单位是字节
譬如sizeof(char)==1, sizeof(int *)==4 这些是计算的类型的大小,char是一个字节,int*是4个字节(其实32位系统下指针都是4个字节,譬如char*,void*等等)
另外譬如char a;那么sizeof(a)==1
int b;那么sizeof(b)==4(这个跟编译器有关,有些是2)

另外在计算结构和类的大小的时候,也可以用sizeof来计算该类或者结构所占的字节.只是计算方法根据编译器不同而有些不同,但基本的算法都一样,譬如char是1个字节,int*是4个字节,double是8个字节,double*是4个字节这样子.有些编译器会进行对齐处理,有些不会.但是这个一般没有太大的意义.

在应用方面,譬如
1.计算数组元素个数
int a[]={1,2,3,4,5,6,7,8,9,20};
sizeof(a)/sizeof(a[0])就是数组a的大小除以单个元素的大小,那么结果就是数组a的元素个数,这样比自己数来的方便,尤其是数量比较多的时候.在对数组进行遍历操作时,譬如for(int i=0;i<sizeof(a)/sizeof(a[0]);++i){...}
这样就不容易出错,不然很可能会出现少1或者多1的失误

2.动态申请内存(用malloc,calloc,realloc的时候)
譬如要申请一段内存存放30个double类型数
那么可以用(double*)malloc(sizeof(double)*30)也就是申请8*30个字节的空间,并且把首地址返回给某个double*类型的变量

3.有些函数的参数需要字节数的时候

比如说你

int a;
short b[40];

printf ("%d\n", sizeof(int));
printf ("%d\n", sizeof(a));
printf ("%d\n", sizeof(b));

用vc运行的话,屏幕会显示:
4
4
80

为什么?
第一行,在vc中int类型占4个字节,sizeof返回int类型所占字节数
第二行,a占了4个字节,因为a是int型
第三行,b是短整型数组,占了2*40=80字节

sizeof,顾名思义,看所占用的存储空间的

上面说的对..不过不是字符,是字节

sizeof取回你当前计算的"量"所占用内存的长度~~

比如说int一般占用4个字节..而无论你的数字多大..主要不溢出..就是4

  • 18348184183 :c语言中SIZEOF啥意义
    项包童5058 :答:sizeof操作符的结果类型是size_t,它在头文件 中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。1、若操作数具有类型char、unsigned char或signed char,其结果等于1。ANSI C正式规定字符...
  • 18348184183 :C语言中,sizeof是一个?
    项包童5058 :答:sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符;sizeof是计算对象所占的字节数,通常用来查看变量、数组或结构体等所占的字节个数;用法:include<stdio.h> int main(){ int l;char a1[] = "abc"...
  • 18348184183 :sizeof什么意思?
    项包童5058 :答:sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符。常见的使用方式:int a=10;int arr=[1,2,3];char str[]="hello";int len_a = sizeof(a);int len_arr = sizeof(arr);int len_str = ...
  • 18348184183 :sizeof在c语言中是什么意思
    项包童5058 :答:sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符。在 Pascal 语言中,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C 语言中,sizeof() 是一个判断数据...
  • 18348184183 :sizeof()是什么意思?
    项包童5058 :答:sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位)。char是c语言中基本类型,一般char类型占1个字节。sizeof(char)的结果是,1。sizeof:计算数据类型长度 char = 1 int 2,long 4...
  • 18348184183 :C语言中sizeof是什么意思
    项包童5058 :答:sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符。常见的使用方式:int a=10;int arr=[1,2,3];char str[]="hello";int len_a = sizeof(a);int len_arr = sizeof(arr);int len_str = ...
  • 18348184183 :C语言中sizeof的用法?
    项包童5058 :答:在Pascal语言中,sizeof()是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在C语言中,sizeof()是一个判断数据类型或者表达式长度的运算符。在Pascal语言与C语言中,对sizeof()的处理都是在...
  • 18348184183 :sizeof()是什么意思?
    项包童5058 :答:C 一个整型表达式 。sizeof() 是一个获取数据类型或者表达式长度的运算符。例如:sizeof(int)就是获取int型的长度,所以值为4,即int型占4字节内存。double是C语言的一个关键字,代表双精度浮点型。占8 个字节(64位)...
  • 18348184183 :C语言里sizeof(char)是什么意思
    项包童5058 :答:sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位)。char是c语言中基本类型,一般char类型占1个字节。sizeof(char)的结果是,1。sizeof:计算数据类型长度 char = 1 int 2,long 4...
  • 18348184183 :C语言中 。定义a[100],求sizeof(a[100]),以及sizeof(&a)和sizeof(&a...
    项包童5058 :答:在C语言中,定义a[100]表示定义了一个包含 100 个元素的数组 a。下面是对于 sizeof() 运算符的解释:sizeof(a[100]) 表示 a 数组中的第 100 个元素的字节数,由于数组元素的类型未知,因此这个值可能不同,通常为 ...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网