1.  b++运算

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

输出结果:

a=3

b=3

运算过程 : (b++的运算是先运算, 后自加)

(1) . 先把第一个b++看成 x=b++ ,  则 x=1,b=2 ;  第二个 b++ 看成 y=b++ , y=2, b=3

(2) . a=x+y  a=3

2 . ++b运算

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

输出结果:

a=6

b=3

运算过程: (++b操作先自加, 后运算)

(1) . 把第一个 ++b  后 b=2 ;  第二个  ++b  后 , b=3 , 因为式子 ++b同优先级所以 , 式子 ++b 的结果是3 , 所以a=6

扩展 : a  =  ++b  +  ++b  +  ++b;

计算过程:

首先运算符 + 是双目运算符 , 则只能先计算前两个 ++b 的内容 有了前两个的结果 , 在结合后面的 + ++b

3. ++运算结合三目运算符

例子1

int main(int argc, char** argv)
{
int x, y = ;
x = ;
y = x++ > ? : ;
printf("x=%d y=%d\n",x,y);
return ;
}

输出结果:

x=71   y=0

运算过程:

(1) . 式子 x++ 的值是 70 , 然后x自加 x=71

(2) . x++ > 70运算是错误的,所以y=0

例子2

int x=,y=;
int a,b,c;
a = (--x==y++) ? --x : ++y;
b=x++;
c=y;

运算结果: a=8, b=8, c=10

运算过程:

(1) . 首先判断   ( --x == y++ )  式子 --x 的值是 9 , 式子 y++ 的值是 9  , x=9 , 有= 10, 这个判断是正确的

(2) . 判断式子正确 会执行 ? 后的 --x , x=8

(3) . 式子 x++ 是先赋值 x 的值 , 在进行 x 自加 1

例子:

#include <stdio.h>

#define pro(x)  (x*x)

int main(int argc, const char *argv[])
{ int i=3,j,k;
j = pro(i++); // j = i++ * i++
k = pro(++i); // k = ++i * ++i
printf("j=%d\nk=%d\n",j,k);
return 0; } // j=12 k=49

  

4 .  逗号运算符

float x=10.5,  y=1.8, z=0;

z = (x=5, y = 6, x+y);   z赋值为 11 ,   x赋值为 5 ,   y赋值为6

z = x=5, y = 6, x+y      这个式子的结果为11 , x 为5 ,  z 为 5 , y 为 6

 5 . sizeof() 运算符   sizeof(<类型或变量名>)

求所占的字节数

char buf[] = "hello";           sizeof(buf) 结果为6 , 字符串hello结尾有一个 \0

char buff[10] = "hello";      sizeof(buff) 结果为10 数组的长度固定为10 个字节

char *p = 0;                sizeof(p); 结果为 4  , 32位机上指针的占4个字节

sizeof(char);                  结果为1, char类型占一个字节

C 运算符, 有符号数据运算,的更多相关文章

  1. pyhton学习笔记(基础五:数据类型、数据运算)

    数据类型初识 1. 数字 整数:2是一个整数的例子 长整数 不过是大一些的整数 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3*10-4. (-5+4j ...

  2. python基础2(数据类型、数据运算、for循环、while循环、列表)

    1.数据类型 python使用对象模型来存储数据,每一个数据类型都有一个内置的类,每新建一个数据,实际就是一个对象,即所有数据都是对象. 对象的3个特性: 身份:即内存地址,可以用id()来获取 类型 ...

  3. Python 基础篇:数据类型、数据运算、表达

    1. 数据类型 1.1 数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-231-231-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取 ...

  4. 小白的Python之路 day1 数据类型,数据运算

    一.数据类型初识 1.数字 2 是一个整数的例子.长整数 不过是大一些的整数.3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3 * 10-4.(-5+4j ...

  5. Python之旅Day1 数据类型初识(数字|字符串|列表|数据运算) 编码 表达式(if...else|for|while)

    初识PYTHON Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(吉多·范罗苏姆)于 ...

  6. python基础1之python介绍、安装、变量和字符编码、数据类型、输入输出、数据运算、循环

    开启python之路 内容概要: 一.python介绍 二.安装 三.第一个python程序 四.变量和字符编码 五.用户输入 六.数据类型 七.一切皆对象 八.数据运算 九.if else 流程判断 ...

  7. python数据类型和数据运算

    数字 整型 包括正整数和负整数,和数学的表示方法一样.如:1.100.8008.-12等. 浮点型 浮点数字也称为小数,如果按照科学计数法表示时,小数点的位置是可变的.如:1.23x109==12.3 ...

  8. python基础之变量类型和数据运算

    一.变量的类型 程序中,为了更充分的利用内存空间以及更有效率的管理内存,变量是有不同的类型的. 怎样知道一个变量的类型呢? 在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了 ...

  9. Python基础(2)——列表、字典、数据运算

    1.列表 #创建列表 name_list = ['alex', 'seven', 'eric'] #或 name_list = list(['alex', 'seven', 'eric']) #访问列 ...

随机推荐

  1. hibernate 保存的flush怎么用?

    hibernate 中的flush方法只有在上面的数据保存用了hibernate的方法保存了,但是在同一个事物当中需要用SQL的方法去查上面保存的数据,这个时候上方的hibernate保存后面就需要用 ...

  2. 总结java IDE (eclipse)快捷键

    Eclipse快捷键 10个最有用的快捷键:Eclipse中10个最有用的快捷键组合:一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码 ...

  3. java基础知识—数组

    1.数组:是一个变量,存储相同数据类型的一组数据. 2.数据的优点:减少代码量.易查找. 3.数组的使用步骤: 1)声明数组:int scores []: 2)开辟空间:scores = new in ...

  4. 关于“load”方法

    load是一个方法,在程序文件中,只有ruby遇到它的时候才会执行.Ruby不会搜索整个文件去执行load命令.也就是说,当Ruby解释器遇到它的时候,它才会去寻找它要加载的文件.这意味着需要加载的文 ...

  5. 20165214 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6

    <网络对抗技术>Exp3 免杀原理与实践 Week5 一.实验目标与内容 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp ...

  6. 字符串排序简单的工具类,数组转list,list转数组

    public static void main(String[] args) { /* String[] str = {"a", "c", "b&qu ...

  7. ASP.NET Web API之消息拦截

    要在action执行前后做额外处理,那么ActionFilterAttribute和ApiControllerActionInvoker就派上用场了.比如客户端请求发过来的参数为用户令牌字符串toke ...

  8. json&pickle模块

    序列化:我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化 反序列化:把变量内容从序列化的对象重新读到内存中,这一过程称为反序列化 为什么要序列化? 1.持久保存状态 一个软件的执行就是在处 ...

  9. 易语言 - 模块 - 子程序 - 纯真IP数据库查询

    .版本 .支持库 spec .程序集 程序集1 .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码 _临时子程序 () ' 在初始化代码执行完毕后调用测试代码 返回 () ' ...

  10. 201771010141 周强《面向对象程序设计(java)》第十三周学习总结

    实验目的与要求 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作机制: (3) 掌握事件处理的基本编程模型: (4) 了解GUI界面组件观感设置方法: (5) 掌握Win ...