在C语言中,++放在前面和后面有什么区别?
分两种情况
【1】 作为单独的语句 i++; ++i; 没区别
【2】 在赋值输出等语句中,++放在前面, 先自加,然后在做其他的操作语句
++放在后面则是 先执行其他的操作,后自加
++(或--)在前面就是先自增(或自减)1然后在运算。放在后面就是先完成后面运算再自增(或自减)1。
++在前是先加1在运算, 在后面是先运算在加1例子如下。
int i=0;
printf("%d",++i);i加了1才给传递参数,所以输出是1
i=0;
printf("%d",i++)前传递参数,所以还是输出原来的值是0
printf("%d,i) 因为上面那句加了1所以 输出是1
举个例子吧,
int x,y;
x=1;
y=x++;
执行y=x++后,y的值是1,x的值为2;若改成y=++x,执行后y的值为2,x的值为2.
总结说来就是++在前的话用的是加一后的值,++在后的话先用原值再加一。
++在变量前:表达式的结果为变量的当前值+1
++在变量后:表达式的结果为变量的当前值
例如有int a = 2,则表达式++a的值为3,表达式a++的值为2。
这两个表达式求值完毕后,a的值均会变为3。
i++是先赋值再计算
++i是先计算再赋值
可以简单理解成前++优先级高,后++优先级最低
于是有:
如:i=1 (i++)+(++i)+i
运算顺序从左到右
先算第一个括号里的i++。先赋值则1=(i++),原式变为 1+(++i)+i。再计算后++ ,i=2。
算第二个括号里的++i。先计算 ,i=3。再赋值则3=(++i),原式变为 1+3+i。
最后就得到原式变为1+3+3=7,i=3
分两种情况
【1】 作为单独的语句 i++; ++i; 没区别
【2】 在赋值输出等语句中,++放在前面, 先自加,然后在做其他的操作语句
++放在后面则是 先执行其他的操作,后自加
c语言 将一个5*5矩阵中最大的元素放在中心,最小的元素放在左上角
代码如下 供参考 include <stdio.h>int main(){int a[5][5];int i,j;int maxi,maxj, mini,minj;for(i = 0; i < 5; i ++)for(j = 0; j < 5; j ++)scanf("%d",&a[i][j]);maxi = maxj = mini = minj = 0;for(i = 0; i < 5; i ++)for(j = 0; j < 5...
C语言中,函数定义和函数调用的区别是什么?
在C语言中,函数定义和函数调用是两个不同的概念。函数定义指的是编写函数体的过程,其中定义了函数的名称、参数列表、返回类型以及函数体内的实现代码。函数定义告诉编译器如何执行该函数。例如:int add(int a, int b) { return a + b;} 上面的代码定义了一个名为add的函数,它接受两个整型...
一为什么C语言中把执行语句放在赋值语句前会出错,比如: int main...
可能是c语言的问题,c语言本身是必须在程序的一开始就把所有的变量都声明了才行的。 但是现在的编译器一般都不会检查这个问题。谢谢,望采纳。
关于c语言中联合体\/共用体中数据存放的问题?
注意,你可以看到程序在把16位弄成整数的时候把后面八位放在了前面,前面八位放在了后面。这个反序是计算机存储结构造成的,这个和联合体没有直接关系。如果感兴趣的话可以参考汇编语言。现在我们来看看,你给的例子:union dt { int a;char b;double c;}data;此时的联合体所占的内存大小是8个字节,...
C语言中的∧有什么用呢?
在C语言里这个符号“ ∧ ”表示“按位异或”运算符。例:^ 按位异或 AND (位与&) OR ( 位或| ) XOR ( 位异或^ )1 & 1 = 1, 1 | 1 = 1, 1 ^ 1 = 0 1 & 0 = 0, 1 | 0 = 1, 1 ^ 0 = 1 0 & 1 = 0, 0 | 1 = 1, 0 ^ 1 = 1 0 & 0 = 0, ...
x+y在C语言中为什么不能放在赋值运算符左边?
在C语言中赋值运算符左边必须是一个变量,而x+y返回的是数值,所以不能放在赋值运算符左边。
C语言中整型变量是几个字节范围?
C语言在VC++6.0环境中编译,整型变量占4个字节,范围是-2147483648-2147483647。1)基本型:类型说明符为int,在内存中占4个字节;2)短整型:short int或short,所占字节和取值范围基本相同;3)长整型:long int或long,在内存中占4个内存;4)无符号型:为unsigned。在书写变量定义时,需注意:1...
C语言中的“code”是什么意思啊
code是keil C51里面的关键字,一般用于定义常量数组,意思是告诉编译说把这个数组放在ROM存储。code的作用是告诉单片机,定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改。因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的...
在c语言中,如何自定义头文件
自定义头文件通常放在使用该头文件的源文件所在的目录中,并使用#include "MyHead.h"来包含。头文件是不编译的,因为C语言编译过程之前有个预编译过程。在这个过程中用头文件中的内容替换源文件中“#include”命令,所以在编译器看来,没有头文件,只有源文件。预编译过程还包括条件编译。头文件为了防止...
关于c语言中规定变量必须先定义后使用的问题
一般的,为了要达到最大的兼容跨平台性,还是放在函数开头定义。因为C89规定,在任何执行语句之前,在块的开头声明所有局部变量。如以下代码:会报错信息:error C2065: 'salary' : undeclared identifier。在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。
仝阮复方:[答案] 有区别的,比如b=a++和b=++a 前者相当于b=a;a=a+1 后者相当于a=a+1;b=a
揭阳市13913606810: 大神,求解C语言中++a和a++的区别,简单的说就是++放在字符前和字符后的区别,在线等?
仝阮复方: ++a 会先让a加1,然后再执行 语句 a++ 会先执行语句 ,再让a加1 举例: int a = 1; int b,c; b = a++; ///执行完这句后 a=2,b=1 c = ++a; //执行完这句后 a=3,c=3
揭阳市13913606810: C语言中"++"" - "的题!急!!!!!_?
仝阮复方: 首先告诉你"++","--"的意思."++"放在变量前面:就是在该变量参与计算前给他加1"++"放在变量后面:就是该变量先参与计算计算结束之后加1"--"和"++"的用法一样!c=a+b++>a?b==c&&a:b--==c; 上面的是一个条件判断语句分...
揭阳市13913606810: C语言中前置++和后置++的区别 - ?
仝阮复方: i++ 与 ++i 的主要区别有两个: 1、 i++ 返回原来的值,++i 返回加1后的值. 2、 i++ 不能作为左值,而++i 可以.
揭阳市13913606810: C语言中自加自减运算符前后位置的区别 - ?
仝阮复方: ++i,--i i++,i-- 其中前两种是先加(减)后使用,后两种则是先使用后加(减). 但对于i=3时: 表达式(i++)+(i++)+(i++)的值为多少,各种教材说法互不统一,有的认为是(如,潭浩强编著《C语言程序设计》清华大学出版社1991年版)...
揭阳市13913606810: 请教一下前++和后++ - ?
仝阮复方: 是C语言里面的++前和++后么? 举个例子a=1,b=2. (++a)+(b++)=?,运行后结果是4,a=2,b=3, 运行的时候(++a)取2,(b++)取2. ++前和++后都是自增的意思!区别就只在于运算的时候! ++前是运算时取的值是自增加一后的值!++后是运算时取原先的值,运算后本身的值自增加一!
揭阳市13913606810: C语言中++、 -- 结合性是怎样的?
仝阮复方: C语言的++ 、--各有前置和后置两个,因此其结合性也就有右结合和左结合两种了.不过你可以这么理解:后置++和后置--的优先级比前置的要高一点.因此a+++b就是指(a++)+b而不是a+(++b)了.
揭阳市13913606810: C语言中常常一个字母后出现的==和++表示什么意思??? - ?
仝阮复方: ==表示相等,通常出现在条件语句里面,比如if(a==1)……就是判断a是否等于1 ++意思是自增一,a++等价于a=a+1;如果a=1,a++之后就是2
揭阳市13913606810: C语言里自加++和自减——放变量前和变量后有什么不同作用啊,分别怎么计算的? - ?
仝阮复方: 运算符在前,表示运算在前取值在后;运算符在后,表示运算在后取值在前 C语言是过程式编程语言.不同于“纯”函数式编程语言,C语言的表达式可以改变变量的值或外部状态,这被称为表达式的“副作用”(side effect).++i 就是含有副作...
揭阳市13913606810: C语言编程中的++i和i++有什么区别?该怎么记牢?谢了 - ?
仝阮复方: ++i在用时是i先自增1,再用这时的i值去参与计算; i++是用增1前的i去参与计算,参与计算后i再增1; 例子:int i=0; i++; printf("%d",i);//这时打出的值为0; printf("%d",i);//这时打出的值为1,因为i在上个语句中被用过了,本身的值增1 ********** int i=0; ++i; printf("%d",i);//这时打出的值为1;