【C语言】赋值表达式自增自减逗号表达式

1.标识符 关键字 预定义标识符 用户标识符
2.整型数据 常量(十进制,八进制,十六进制) 变量 (有符号,无符号)
3.实型常量 常量 变量
4.算术表达式
5.赋值表达式
6.自增自减运算
7.逗号表达式

5.赋值表达式 C语法规定:变量必须预先定义,然后使用 函数:数据存放到存储单元(赋值),怎样将其中的数据取出来使用(读数据)(程序运行过程中:对存储单元做存取操作)
赋值 int a; a =10;

int a=10; 变量刚定义,用户还未对其进行赋值,变量的值是随机值 在定义变量时可以对变量进行赋值(变量初始化)

int a,b; a = 10; b = a;

int a=b=10;

1.赋值表达式基本格式: 变量名 = 表达式 int a; a = 10; “=” :赋值予(运算符(赋值运算)) 含义:将运算符右边表达式的值存储到左边变量所代表的存储单元中 表达式:只能有一个唯一的值 变量名:代表一个存储单元的首字节的编号

注意: 1)表达式可以是任意合法的表达式 2)"="运算符左边必须是变量名,不能是表达式 5 = 10 不合法 a+b=10 不合法
int a,b,c; a=10; b = 20; c=a+b; 3)赋值表达式的优先级别只比逗号表达式高
赋值表达式运算从右到左(结合性:右结合) 4)赋值表达式的值就是左边变量所存储的值 5)赋值表达式的右边还可以是赋值表达式(赋值表达式嵌套)

int a,b,c; a=10; b=c=20;

int a=b=10; 不合法(b变量未定义) int a=10,b=10; 合法 int b; int a=b=10;

int a=10; a = 20; 6)用户可以给一个变量赋多次值,但有效的赋值是最后一次

7)赋值兼容() int a=10; 2 long b; 4 b = a; int —>long a:
0000 0000 0000 1010 b: 0000 0000 0000 0000 0000 0000 0000 1010 tc:环境
long a = 32768; int b; b = a;

出错 long —> int
-32768 — 32767 不会出错,超出该范围一定出错(丢失高2字节的数据)

int a=10;
short b;
b = (short)a;
#include <stdio.h>
void main()
{
	int a;
	float b=12.99;
	a = b;
	printf("a=%d\n",a);
}

int a=12;
float b;
b = a;  

float 4 7--8  double 8 15--16
float --->double

#include "stdio.h"
void main()
{
	float a=1.23456789;
	double b;
	b=a;
	printf("a=%f,b=%lf\n",a,b);
}

复合赋值: int a=1; a=a+1;<=> a += 1; a=a-1;<=> a -= 1; a=a*1;<=> a *= 1;
a=a/1;<=> a /= 1; a=a%1;<=> a %= 1;
注意:
1)%=:操作数类型必须是整型数据
2)复合赋值运算符之间不能加任何字符(空格)
- = 不合法
3)复合赋值左边必须是变量名 (a+b)+=1; 不合法 (a+b)=(a+b)+1 4)若复合赋值右边是表达式时建议加在表达式之间括号 a+=b+2

#include "stdio.h" void main() 
{ 	int a=1,b=2;
 	a-=(b+2); 	
 	a=a-(b+2) 	
 	printf("a=%d,b=%d",a,b);
 }

自增自减:(++,–) (变量名)++ ++(变量名) (变量名)-- --(变量名) a=a+1;
#include “stdio.h” void main() { int a=1,b; b = a++; printf(“a=%d,b=%d\n”,a,b); }

结果:b=1;a=2;

b=a++; <=> b=a; a=a+1;

表达式的值是:1
a: 2

#include "stdio.h"
 void main() 
{ 	int a=1,b;
  	b = ++a;
  	printf("a=%d,b=%d\n",a,b);
}

结果: a=2,b=2 b = ++a; <=> a=a+1; b=a;

int i=2,c; c=i++ c:2 i:3

后缀: 先将变量的值取出来作为表达式的值
然后使变量的值自加1 前缀: 先使变量的值自加1
然后将变量的值取出来作为表达式的值

float a=3.12,b; b=a++; printf(“a=%f,b=%f\n”,a,b);

结果:b=3.12 a=4.12

逗号表达式 格式: 表达式1,表达式2,表达式3,…,表达式n
执行过程:从逗号表达式的最左边一个表达式开始依次执行到最后一个表达式,整个逗号表达式的值是最后一个表达式的值

d=(a=12,b=13,c=a+b)

d=(10,20,30);

int i=1,j=3,k; i++,j–,--j,++i,k=j+i,k+j

算术表达式 > 赋值表达式 > 逗号表达式

填空:40    30 10 程序填空:18 程序修改: 18 程序编写: 24   double a; a=12.0
int long short float double
double a1=1.0,a2=1.0;
a*b/c a/c*b a*(b/c)
posted @ 2020-07-11 12:41  jee-cai  阅读(333)  评论(0编辑  收藏  举报