c语言先加后减程序,C语言中的加加减减
++i :自增运算符
功能:i 自增1后再参与运算
#include
int main()
{
int i = 8;
printf("%d\n",i);
return 0;
}
执行结果:
说明:i 先自增1 后i变为9 再将9输出
--i 自减运算符
功能:i自减1后再参与运算
#include
int main()
{
int i = 8;
printf("%d\n",i--);
return 0;
}
执行结果:
说明:i 先自减1 后再参与运算所以i的值是7
i++ :i参与运算后i的值自增1
#include
int main()
{
int i = 8;
printf("%d\n",i++);
printf("%d\n",i);
return 0;
}
执行结果:
说明:因为i先参与运算后值自增1,所以输出的值是8,9;
i-- i参与运算后i的值自减1
#include
int main()
{
int i = 8;
printf("%d\n",i--);
printf("%d\n",i);
}
执行结果:
说明:因为i 参与运算后i的值自减1,所以输出的结果是8,7
-i++ i先与负号结合再自增
#include
int main()
{
int i = 8;
printf("%d\n",-i++);‘
printf("%d\n",i);
return 0;
}
执行结果:
说明:i先与负号结合得到-8然后再自增1(输出-8),在第二个输出语句中输出9
-i--: i先与负号结合再自减
#include
int main()
{
int i = 8;
printf("%d\n",-i--);‘
printf("%d\n",i);
return 0;
}
执行结果:
-(++i): i先自增再与负号结合
#include
int main()
{
int i = 8;
printf("%d\n",-(++i));
printf("%d\n",i);
return 0;
}
执行结果:
-(--i): i先自减再与负号结合
#include
int main()
{
int i = 8;
printf("%d\n",-(--i));
printf("%d\n",i);
return 0;
}
执行结果:
(i++) + (i++) + (i++)
#include
int main()
{
int i = 5;
int p = (i++) + (i++) + (i++);
printf("%d\n",p);
printf("%d\n",i);
return 0;
}
执行结果:
说明:这里的i++是先参与运算后再自增1
所以:p = 5 +5 + 5
有三个i++,i自增三次后得到i= 8;、
(++i) + (++i) + (++i)
#include
int main()
{
int i = 5;
int p = (++i) + (++i) + (++i);
printf("%d\n",p);
printf("%d\n",i);
return 0;
}
执行结果:
说明:++i i先自增1后再参与运算
先计算(++i)+(++i)首先自增两次 i = 7
(++i) + (++i) = 14
而后就变为 q = 14 + (++i)
此时的第三个++i自增了三次变为8
q = 14 +8 = 22
i自增了三次变成了8
(i--) + (i--) + (i--)
#include
int main()
{
int i = 5;
int p = (i--) + (i--) + (i--);
printf("%d\n",p);
printf("%d\n",i);
return 0;
}
执行结果:
说明:这里的i--是先参与运算后再自减1
所以:p = 5 +5 + 5
有三个i--,i自减三次后得到i= 2;、
(--i) + (--i) + (--i)
--i i先自减1后再参与运算
#include
int main()
{
int i = 5;
int p = (--i) + (--i) + (--i);
printf("%d\n",p);
printf("%d\n",i);
return 0;
}
执行结果:
说明:先计算(--i)+(--i)首先自减两次 i = 3
(--i) + (--i) = 6
而后就变为 q = 6 + (--i)
此时的第三个++i自增了三次变为2
q = 6 +2 = 8
i自减了三次变成了2
*p++先取指针p指向的值,再将指针p自增1
#include
int main()
{
int a[5] = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",*p++);
printf("%d\n",*p);
return 0;
}
执行结果:
说明:*p++先计算*p将*p的值输出后p自增1
所以在第二个printf中打印的是a[1]的值
*p--先取指针p指向的值,再将指针p自减1
#include
int main()
{
int a[5] = {1,8,10,5,2};
int *p;
p = &a[1];
printf("%d\n",*p++);
printf("%d\n",*p);
return 0;
}
执行结果:
说明:*p--先计算*p将*p的值输出后p自减1
所以在第二个printf中打印的是a[0]的值
(*p)++ 先取指针p指向的值(以p为内存地址的值),再将该值自增1
#include
int main()
{
int a[5] = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",(*p)++);
printf("%d\n",*p);
return 0;
}
执行结果:
说明:p = a;
*p = a[0];
*(p)++ = a[0] + 1;
但是因为i++是先参与运算后自增1
所以第一个printf()输出的是*p的值1
第二个Printf()输出的是*p+1的值 2
(*p)-- 先取指针p指向的值(以p为内存地址的值),再将该值自减1
#include
int main()
{
int a[5] = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",(*p)--);
printf("%d\n",*p);
return 0;
}
执行结果:
说明:p = a;
*p = a[0];
*(p)-- = a[0] - 1;
但是因为i++是先参与运算后自增1
所以第一个printf()输出的是*p的值1
第二个Printf()输出的是*p-1的值 0
*++p先将指针p自增1(此时指向第二个元素) *操作取出该值
#include
int main()
{
int a[5] = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",*++p)
return 0;
}
执行结果:
*--p先将指针p自减1(此时指向第一个元素) *操作取出该值
#include
int main()
{
int a[5] = {1,8,10,5,2};
int *p;
p = &a[1];
printf("%d\n",*--p);
return 0;
}
执行结果:
++*p:先取出p指向的数字,再将这个数字加1
#include
int main()
{
int a[5] = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",++*p);
return 0;
}
执行结果:
--*p:先取出p指向的数字,再将这个数字减1
#include
int main()
{
int a[5] = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",--*p);
return 0;
}
执行结果:
*(p++) :p与++先结合(而不是*)先结合,这个先是运算符跟谁结合在一起而不是时间的先后
如 t = *(p++);
等价于 t = *p;p++;
#include
int main()
{
int a[5] = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",*(p++));
printf("%d\n",*p);
return 0;
}
执行结果:
*(p--) :p与--先结合(而不是*)先结合,这个先是运算符跟谁结合在一起而不是时间的先后
如 t = *(p--);
等价于 t = *p;p--;
#include
int main()
{
int a[5] = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",*(p--));
printf("%d\n",*p);
return 0;
}
执行结果:
c语言先加后减程序,C语言中的加加减减相关推荐
- 如何让一个vue项目支持多语言(vue-i18n) 打包后依然可以修改语言包 并且修改后不需要重新打包
如何让一个vue项目支持多语言(vue-i18n) 1.安装:npm install vue-i18n --save 2.在main.js中引入vue-i18n import VueI18n from ...
- C语言输入end时结束程序,c语言输入eof结束怎么写
1.C语言里的EOF(结束程序)怎么用 在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file).在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件 ...
- c语言文件 加载内存吗,把文件中的数据加载到内存进行查找C语言实现.docx
把文件中的数据加载到内存进行查找C语言实现 #define _CRT_SECURE_NO_WARNINGS#include#include#includechar **pp=NULL;void ini ...
- 如何用c语言编写炫酷烟花程序,C语言实现放烟花的程序
这是一个利用C语言编写放烟花的程序(同时也可以播放音乐),供大家参考,具体内容如下 代码如下 #pragma once #include #include //图形界面库头文件 #include // ...
- c语言入门经典18个程序,C语言入门经典
面向C语言初学者,详细且全面地讲解了C语言的各种知识,从基础知识到高级应用,由浅入深,循序渐进地引领读者掌握C语言中的各种编程技术,体会C语言的灵活与强大.同时,<C语言入门经典>着眼于应 ...
- python数组相减_对Python 中矩阵或者数组相减的法则详解
对Python 中矩阵或者数组相减的法则详解 最近在做编程练习,发现有些结果的值与答案相差较大,通过分析比较得出结论,大概过程如下: 定义了一个计算损失的函数: def error(yhat,labe ...
- 合并的表格怎么加横线_如何在excel中文字后面加横线
如何在excel中文字后面加横线以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如何在excel中文字后面加横线 好办啊 ...
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexPathList 中根据 File 加载 DexFile | loadDexFile 分析 )
文章目录 前言 一.根据 File 加载 DexFile 二.DexPathList.loadDexFile 函数分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ( DexClassLo ...
- android fragment加载布局的方式,Android中Fragment的加载方式与数据通信详解
Android中Fragment的加载方式与数据通信详解 发布时间:2020-08-22 18:55:57 来源:脚本之家 阅读:155 作者:Joah 一.加载方式 1. 静态加载 1.1 加载步骤 ...
- 用c语言写一个求和的程序,C语言实现两数求和
能够使一个正确的C语言程序执行的必要顺序:上机输入与编辑源程序(.c)-->对源程序进行编译(.obj),得到目标函数-->将目标程序 与库函数链接,得到可执行的目标程序(.exe)--& ...
最新文章
- android 动态设置padding,Android动态设置控件大小以及设定margin以及padding值
- php 二叉树 与赫夫曼树
- Linux之特殊权限(SUID/SGID/SBIT)
- boost::hana::value_of用法的测试程序
- WebService 之 WSDL文件 讲解
- 清华大学《操作系统》(十二):临界区与锁
- Maven:构建web工程出现Failed to execute goal org.apache:maven-archetype-plugin:3.1.1:generate (default-cli)
- 英文数据集txt_【美股量化07篇】Python获取标普500成分股数据
- (PDF目录)自动生成PDF书签目录
- Nuvoton新唐单片机利用 CAN 总线技术解决楼宇电梯控制问题
- 【vn.py】SpreadTrading价差交易
- 树莓派 Pico ADC温度测量
- wifi-pumpkin/wifipumpkin3-2022-kali安装(源码编译)
- windows安装虚拟机(VMware)
- 普通话转换成方言的语音识别方法
- 监控文件变化 (Python—看门狗)
- updating java index_myeclipse右下角的updating indexes 是什么意思?
- 基坑监测系统详细解决方案
- 【网络攻防】网络扫描工具Nmap的使用
- iOS开发 ---- 其他控件,弹窗,滑块,菊花,步进,分段等
热门文章
- C# “配置系统未能初始化”
- python安装openpyxl库_Python openpyxl 库
- #(最新最全)PDB(Protein Data Bank)数据格式详解
- 计算机如何取消还原卡,如何关闭硬件还原卡?
- 全国各省市固定资本形成额数据 (1990-2018年)
- Shell 脚本加密工具-shc
- python gbk 相互转换 utf8
- 计算机文化书签,《计算机文化基础》EXCEL-机试[1]
- Matlab 边界提取
- htlm5实习报告_Wa zhu ti网站html5搭建设计毕业论文+html源码+实习报告+答辩问题