i++与++i的区别及sizeof的用法

i++与++i的区别

1 )i++是先取i的值,在进行加一操作;++i是先加一,在取加一后i的值;

2)++i可作为左值,i++不可作为左值。

     原因:++i是将自身的加一赋值给新变量,同时自身也加一;而后置++是将自身的值赋给一个临时空间,然后自身                   加1。我们都知道,左值是允许取地址&运算符获得相应的内存地址,而i++返回的i是一个临时变量,临时变量                 是右值,且具有常性,只可读不可写入,所以自然不能被赋值,而作为左值。


sizeof在C语言中得用法:

判断数据类型长度符的关键字,作用是返回一个对象或者类型所占的内存字节数。

sizeof(类型,数组名,表达式)或者sizeof(变量名)

有三种语法形式:

1)sizeof(对象);

2)sizeof(类型);

扫描二维码关注公众号,回复: 1598631 查看本文章

3)sizeof 对象;

sizeof的特点:c99标准下执行

1)sizeof可以对一个函数调用求值,结果是函数返回类型的大小,函数不会被调用;

2)sizeof的常量性,他可被当作常量表达式使用;

3)指针变量的sizeof:它与指针指向的对象没有关系,而是表示计算机系统地址总线的宽度。如32为系统中指针变量的sizeof结果为4;

4)数组的sizeof:它等于数组所占用的内存的字节数。

5)结构体的sizeof:这个比较复杂,它的结果等于对象或者类型所占的字节数,但是,这与编译器有关,并且设计字节对齐的知识,不多讨论。

6)联合体的sizeof:联合体和结构体不同,他是重叠式,sizeof结果表示成员中sizeof的最大值。














猜你喜欢

转载自blog.csdn.net/qq_40340448/article/details/78070576