zoukankan      html  css  js  c++  java
  • 【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
    ",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
    ",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 ”,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
    ",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 ”,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)
    
    一键三连呀!
  • 相关阅读:
    366. Find Leaves of Binary Tree输出层数相同的叶子节点
    716. Max Stack实现一个最大stack
    515. Find Largest Value in Each Tree Row查找一行中的最大值
    364. Nested List Weight Sum II 大小反向的括号加权求和
    156. Binary Tree Upside Down反转二叉树
    698. Partition to K Equal Sum Subsets 数组分成和相同的k组
    244. Shortest Word Distance II 实现数组中的最短距离单词
    187. Repeated DNA Sequences重复的DNA子串序列
    java之hibernate之基于主键的双向一对一关联映射
    java之hibernate之基于主键的单向一对一关联映射
  • 原文地址:https://www.cnblogs.com/jee-cai/p/14095198.html
Copyright © 2011-2022 走看看