printf("%d\n",-i++),如果i为1,那么输出是是多少输出后i为多少?!

作者&投稿:孛古 (若有异议请与网页底部的电邮联系)
int i=1; printf("%d",-i+++++i++); 问下这个输出是多少呀 i又是多少? 注明详细过程,谢谢!~

在编译器允许的情况下,如何结合时按符号优先级来算的,比如-i++,-的优先级高于++,所以优先结合-,之后再++,由于++需要执行完语句以后再+1,所以-i++等于原值的相反数,i+++++是不能通过编译的,因为编译器不能识别第三个加开始的左操作数为什么,加上括号之后才行。

C语言不知道怎么计算的,如果是Java或C#应该输出13,因为i=1,第一个++i,这时候是先加后赋值,所以执行完i=2,++i也是2,然后第二个++i,这时候也是先加后赋值,所以执行完i=3,++i是3,第三个是i++,这时候是先赋值,然后加,所以i++的值应该是3,i=4,最后一个++i,也是先加后赋值,所以执行完i=5,++i是5,最后应该是这样算的2+3+3+5,输出的应该是13,而不是16

输出-1

输出后i的值是2

原因:

取负的优先级比++高,同时由于++在变量后,

所以

printf("%d
",-i++);

相当于:

printf("%d
",-i);

i++;

输出后再自增

 

所以得出以上答案。



输出是-1,输出后i的值为2。
-i++运算过程是先对i + 1(既i变成2),然后返回原来i的值(既1),然后取负,既得-1。
因此,输出的是-1,输出后i的值为2.

输出-1,输出后i为2


(2\/2)rintf() System.out.println()
print() 将括号内的东西进行输出 println() 将口号内的东西输出后并换行 printf() 可以再括号内进行某些运算 上面两个比较简单并且常见,再次略过,下面举例说明 printf 用来计算字符串的长度 加上 后面参数运算后的和 int a,b;a=printf("gelin\\n"); \/\/a的值为6,“\\n”为一个字符长度 b...

C语言——格式化打印printf(常用整理)
  printf没有打印二进制数据的格式,只有打印十六进制数据的格式:%X\/x   有符号的十进制整数值用%d表示,形式为 prrintf("output data:%d",data); 。 &esmp;字符串常量用%s表示,传入的变量为该 字符串的首地址 。该函数会打印字符串中的每个字符,直到遇到结...

unresolved external symbol _rintf是什么意思?
意思是你的那个变量没有声明

C 语言中的void是什么?格式是怎么样的?
void就是函数不返回值啊。定义函数之前使用:void int(int x){ }

c语言区别 两程序有无大括号有什么区别 什么叫内循环 什么叫外循环_百 ...
如果你的第二个for后面还有语句,是第二个for的语句,比如 for(i=0;i<5;i++){ for(j=i+1;j<6;j++);rintf(j,“\\n”);(不知道rintf(j,“\\n”)对不对,好长时间没写C代码了)} 那rintf(j,“\\n”)就是内循环,即第二个for的循环。希望你满意 ...

c语言打数字游戏c语言小游戏
首先,我们需要知道数字游戏的规则。数字游戏是一个1~100的猜数游戏。程序会随机生成一个1~100的数字,然后玩家需要根据提示来猜测数字,直到猜中为止。程序将会输出“比它小”或“比它大”提示,直到数字被猜中。接着,我们需要为程序生成随机数。在C语言中,我们可以使用rand()函数来生成随机数。为了...

frintf里输出max没问题?max是函数名吧!应该用c吧!对不对啊?能不能用...
max应该是在外面有定义的函数,在使用前它已经声明过了,另外这个程序的printf语句里面没有输出max,里面max只是作为字符串在“”中输出,“”中输出什么都是没有关系的,由于max的返回值为int,所以如果想要在print中输出max也是可以的,比如:printf("%d",max(a,b))

c语言能写出什么样的小程序?
11:sum=304;break;case 12:sum=334;break;defaultrintf(data error);break;} sum=sum+day;  \/*再加上某天的天数*\/ if(year%400==0||(year%4==0year%100!=0))\/*判断是不是闰年*\/ leap=1;else leap=0;if(leap==1month>2)\/*如果是闰年且月份大于2,总天数应该加一天*\/ sum++;...

执行以下程序后,a,b的值分别为main(){inta,b,k=4,m=6,*p1=&k,*p2=&...
void main(){ int a,b,k=4,m=6;int *p1=&k;\/\/\/p1指针指向k int *p2=&m;\/\/\/p2指针指向m a=p1==&m;\/\/\/如果 p1的地址等于m的地址 则a=1;否则 a=0; 这里 p1 跟m的地址不一样 所以a=0 b=(*p1)\/(*p2)+7;\/\/\/b等于 p1的值 即b=4\/6+7 因为是整形运算 4\/6...

matlab feedback
feedback是matlab里专门用来求线性时不变系统的前向传递函数的,不能用来做变量名,不能赋值 如果你不知道什么是线性时不变系统,那就不要用这个函数,以后学到了就知道了,是信号与系统理论的一部分知识

长岛县13081928356: printf("%d%d",中2个%d代表什么
郗嘉可尼: 占位符.它为你将要输出的值占位,d代表输出的值为整型,%f 中 f 代表输出的值为浮点型

长岛县13081928356: printf("%d")? -
郗嘉可尼: 对于同一个EXE文件,可能每次都相同,但是只要你重新编译一下,生成一个新的EXE文件,可能结果就不是2433316了.这属于典型了参数不够的情况,因为C语言的堆栈是调用者维护,所以printf函数的参数太多、太少都不报错,程序编译为汇编代码时候,是主程序完成一系列的参数入栈(PUSH),然后进行一个CALL,子程序里面使用参数都是一系列的[BP+N]来实现的,当参数不符合预期的时候,[BP+N]还是能取到一个内存中的数据,只是位置和内容都不是我们所意料的,而且在WIN32平台的保护模式下,甚至这样会造成内存访问出错.

长岛县13081928356: printf的参数#带#什么意思printf("%d#", j); -
郗嘉可尼: #是一个普通字符. 例如: j=1; printf("%d#", j); 则输出为 1#

长岛县13081928356: printf("##%d\n",k)什么意思 -
郗嘉可尼: printf是输出函数,%d意味着输出的k是整数型,\n是换行的意思.

长岛县13081928356: printf("%d,%d",y,x);里的“%d”是什么意思?? -
郗嘉可尼: 个人理解是 %d是占位符 【常用于按照规定的格式输出】%d 是整形占位符,表示程序输出过程 %d 会在 输出流 中占用 一个位置 , 遇到一个%d,它就去找【对应】的一个变量,进而输出这个【变量的值】;以这个为例: printf("%d,%d",y,x...

长岛县13081928356: 浮点型数用printf函数%d输出,结果怎么算的 -
郗嘉可尼: #include <stdio.h>int main() {float f1 = 3.14f;printf("%d", f1); return 0; }

长岛县13081928356: C程序语言:printf语句中的变量前加个&是什么意思?如:printf("%d",&p); -
郗嘉可尼: &代表取地址符,该句printf的结果就是p变量的地址

长岛县13081928356: printf("%d",n%10);什么意思 -
郗嘉可尼: n对10进行求模运算,就是输出n除以10的余数 列如n=16 ,n%10=6 n=20,n%10=0 望采纳

长岛县13081928356: C语言中printf("%d",i)和printf("%d",&i)的区别是什么 -
郗嘉可尼: printf("%d",i) //以十进制来输出i的值 printf("%d",&i) //将i的存储地址转换为十进制输出

长岛县13081928356: printf("%d");看似简单的缺少参数的printf()函数问题! -
郗嘉可尼: 默认取你第一个变量定义的值,如同类型,显示. 反之为0或随机数. ect. main(){ int a=8; printf("%d"); } 能显示8

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网