C语言-----前置++和后置++的不同

简介: C语言-----前置++和后置++的不同
#include <stdio.h>
int main()
{
    int a, b, c;
    a = 5;
    c = ++a;
    b = ++c, c++, ++a, a++;
    b += a++ + c;
    printf("a = %d b = %d c = %d\n:", a, b, c);
    return 0;
}
 
 
/*1、逗号运算符的优先级比赋值运算符=号的优先级低
 
2、++、+的优先级比+=高
 
3、多个+号在一起的时候,其优先级为后置++、+、前置++
 
      即a+++c,可拆分为(a++)+c
 
那么
 
代码中的运算顺序与a、b、c的值的变化为:
 
a=5
 
c=++a;//a=6,c=6
 
b=++c,c++,++a,a++;
 
//此处由于=号的优先级比逗号高,所以先将++c赋值给b,此时b=7,c=7
 
//c++使得c=8,++a使得a=7,a++使得a=8
 
b+=a++ +c;
 
//由于++、+的优先级比+=高,故先计算+=右边(a++ +c)的值,然后再去与b进行+=运算
 
//此处因为a是后置++,所以先把a的值拿出来,去与c相加,将相加的值去与b进行+=运算
 
先取出a的值8,8+c=8+8=16,此时再a自增由8变为9,那么有b+=16,即b=b+16=7+16=23
 
最终结果为:a=9,b=23,c=8
*/
相关文章
|
存储 XML JSON
c语言使用protobuf与后台前置通信优点及使用总结
c语言使用protobuf与后台前置通信优点及使用总结
|
4天前
|
C语言
【C语言基础篇】字符串处理函数(四)strcmp的介绍及模拟实现
【C语言基础篇】字符串处理函数(四)strcmp的介绍及模拟实现
|
17小时前
|
Java C语言 C++
定义C语言的int main()函数
定义C语言的int main()函数
|
4天前
|
C语言
C语言prinf函数
C语言prinf函数
10 4
|
2天前
|
存储 移动开发 C语言
技术心得记录:嵌入式开发中常用到的C语言库函数
技术心得记录:嵌入式开发中常用到的C语言库函数
|
4天前
|
编译器 程序员 Serverless
函数(C语言)
函数(C语言)
|
3天前
|
机器学习/深度学习 C语言
详细解读C语言math.h中常用函数
详细解读C语言math.h中常用函数
|
4天前
|
C语言
C语言刷题(函数)
C语言刷题(函数)
|
4天前
|
存储 C语言
c语言scanf函数用法
c语言scanf函数用法
|
4天前
|
C语言
【海贼王编程冒险 - C语言海上篇】库函数怎样模拟实现?
【海贼王编程冒险 - C语言海上篇】库函数怎样模拟实现?
7 1