数据类型与表达式

一、数据类型——浮点数

(一)注:

  • 在C语言中两个整数运算的结果只能是整数。
  • 如10和10.0在C语言中是完全不同的数。
  • 10.0是浮点数。

(二)浮点数

  • 浮点数:带小数点的数值。是计算机内部表达非整数(包括分数和无理数)的一种方式,人们借用浮点数表达所以带小数点的数。
  •  当浮点数和整数放在一起运算时,C会将整数转化成浮点数,然后进行浮点数的运算。

(三)double

  • inch是定义为int的变量,如果把int换成double,我们就把它改为double类型的浮点数变量了。
  • double的意思是“双”,是“双精度浮点数”的第一个单词。
  •  人们用来表示浮点数类型,除了double还有float(意思为浮点,这里指单精度浮点)。

(四)数据类型

  • 整数
  •  int
  •  printf("%d",…);
  •  scanf("%d",…);

  •  带小数点的数(浮点数)
  •  double
  •  printf("%lf",…);
  •  scanf("%lf",…);

    二、表达式——运算符和算子,取余计算

(一)表达式

  • 一个表达式是一系列运算符和算子的组合,用来计算一个值。
  • 如:(整行都为表达式)。

amount=x*(1+0.33);

total=57;

count=count+1;

value=(min/2)*lastvalue;

(二)运算符和算子

  • 运算符是指进行运算的动作如加法运算符“+”。
  • 算子是指参与运算的,这个值可能是常数,也可能是变量,还可能是一个方法的返回值。
  • a=b+5中,a、b、5是算子,=和+是运算符。
  • 取余——%,表示取两数相除以后的余数。

(三)运算符优先级

优先级运算符运算结合关系举例
1+单目不变自右向左a*+b
1

-

单目取负自右向左a*-b
2*自左向右a*b
2/自左向右a/b
2%取余自左向右a%b
3+自左向右a+b
3-自左向右a-b
4=赋值自右向左a=b

其中:

  • 单目不变(取负)我理解为类似数学中正(负)号关系。
  • 单目指对一个变量操作的运算符号。
  • 赋值是将右边赋给左边,a=b=6→a=(b=6)

(四)嵌入式赋值,结合关系

1、嵌入式赋值

  • int c=1+(b=a);
  • 不利于阅读。
  • 易产生错误。
  • 不推荐使用。

2、结合关系

  • 一般自左向右,但单目+-和赋值=为自右向左。
  • 表达式应适宜阅读理解,明显,否则易产生误解,误解如:
  • result=(result=result*2)*6*(result=3+result);

    三、交换变量

(一)程序是按步骤执行的

  • 程序表达的是顺序执行的动作,而不是关系,例:
  • a=b;b=a;
  • 是依次执行的,结果使得a和b都得到b原来的值。

(二)交换

“空杯子”;“套路”

int a=1;

int b=2;

int c;

t=a;

a=b;

b=a;

想交换两杯水,只需有第三个杯子做中转就好。


四、复合赋值和递增递减

(一)复合赋值

  • 5个算术运算符+-*/%可以和赋值运算符“=”结合起来,形成复合赋值运算符:“+=”、“-=”、“*=”、“/=”和“%=”。
  • total+=5;即为total=total+5;
  • 注:两个运算符中间不要有空格。  
  • 先算赋值右边式子,加减法需括号→total*=12+3;→total=total*(12+3)

(二)递增递减运算符(++)(--)

  • “++”和“--”是单目运算符(目前已知优先级最高),这个算子必须是变量。
  • 其作用是给变量+1或-1。
  • count++;→count+=1;→count=count+1;

递增递减运算符有前缀后缀

  • 前缀→变量前面,先增值后引用。y=++x;→y=x;x=x+1;(即y=曾经的x;现在的x=曾经的x+1)
  • 后缀→变量后面。先引用后增值。y=x++;→x=x+1;y=x;(即y=x+1)
  • 可以单独使用,但不要组合进表达式。

表达式

运算表达式的值
count++给count加1count原来的值
++count给count加1count+1以后的值
count--给count减1count原来的值
--count给count减1count-1以后的值

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值