美文网首页
C sizeof 运算符

C sizeof 运算符

作者: 小木兮子 | 来源:发表于2018-09-02 21:36 被阅读0次

在C/C++ 中,sizeof 运算符是计算变量或数据类型的大小的。通常int类型占4个字节,char占1个字节。

想必你在学习的C的动态内存分配过程中,一定见过或写过类似的:

int * pointer = malloc(10 * sizeof(int));

不知道刚开始,你有没有跟我一样的想法,就是既然sieof(int )占4个字节,那为什么不直接写40,而要再让计算机去计算呢?后面,查资料才知晓,原来这是为了可移植性做的考虑。尽管32位系统上的大多数C和C ++实现都将int类型定义为四个八位字节,但是当代码移植到不同的系统时,此大小可能会发生变化,从而破坏了代码。

接下来就简单看下sizeof 这个运算符(嗯嗯,确实很简单)

#includeint main()

{

int a ;

a = 6;

printf("sizeof int value is :%d\n",sizeof(int));

printf("sizeof int value is :%d\n",sizeof(a++));

printf("the variable of a's values is :%d\n",a);

printf("sizeof doublel value is  :%d\n",sizeof(double));

printf("the value of sizeof(a + 1.0) is  :%d\n",sizeof(a + 1.0));

return 0;

}

编译环境是:centos 7 

gcc 版本:gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)

运行结果如下 :

[zhang@bogon C]$ ./sizeof

sizeof int value is :4

sizeof int value is :4

the variable of a's values is :6

sizeof doublel value is  :8

the value of sizeof(a + 1.0) is  :8

从运行结果可以看出,sizeof(a++) 是没有执行的,查资料说,sizeof是静态运算符,它的运行结果在编译时刻就决定了,所以不要在有类似的瞎操作,在sizeof 的括号里做运算,这些运算不会做的。

相关文章

  • C++ 碎知识点

    C++ 碎知识点 23. 不能被重载的运算符 ** sizeof **:sizeof 运算符 ** . **:成员...

  • C++中不能重载的运算符

    在C++中,sizeof运算符,.成员运算符,.*成员指针运算符,::作用域解析运算符以及?:条件运算符不能被重载...

  • C语言中关于逗号运算符的理解

    在C语言中运算符有很多,包括算数运算符、关系运算符、赋值运算符、位运算符、逻辑运算符、三目运算符、sizeof运算...

  • 关于逗号运算符的理解

    在C语言中运算符有很多,包括算数运算符、关系运算符、赋值运算符、位运算符、逻辑运算符、三目运算符、sizeof运算...

  • C sizeof 运算符

    在C/C++ 中,sizeof 运算符是计算变量或数据类型的大小的。通常int类型占4个字节,char占1个字节。...

  • 指针入门

    sizeof 运算符 sizeof运算符,能给出某个类型或变量在内存中所占据的字节数。 sizeof(int) s...

  • c++中特殊运算符

    运算符而不是函数 sizeof:对象大小 sizeof expr ;类型大小 sizeof(type);参数包大小...

  • 深入理解C++11 2.8 非静态成员的sizeof

    首先明确一点,sizeof是运算符,类似加减乘除。在C++98中,对非静态成员变量使用sizeof是不能够通过编译...

  • 【C语言】3.sizeof

    1.sizeof sizeof并不是函数,而是运算符。可以用sizeof计算有多少字节。通常用sizeof(常量/...

  • C++笔记(一)--sizeof与strlen的使用

    Day:2018.1.14 ● sizeof()与 strlen()的区别 -- sizeof()是运算符,参数可...

网友评论

      本文标题:C sizeof 运算符

      本文链接:https://www.haomeiwen.com/subject/dwqvwftx.html