问个C++中的初级问题; 在C++中,c=(-a++)+(++b)里的-a代表什么,-a++先算哪?

作者&投稿:营的 (若有异议请与网页底部的电邮联系)
C语言语法问题:a =( c++,b++) 啥意思?~

没有啥意思,就是简单的运算。
这里涉及如下运算符,赋值=,自增++,括号,和逗号运算符。
按照运算符的优先级,先计算括号 也就是讨论 c++,b++
然后计算++,也就是c和b分别自加。(注意)
然后谈论逗号运算符,没有意义,就是从左到右。
所以最后赋值给a的是b++。
前面提到一个注意就是,虽然b自加了,但是他的写法是 b++而不是++b,意义上是先使用后自加。所以赋值给a的值是当前的b的值,这一行指令结束以后,b自身的值才会++。
这个问题只是考察你对各个运算符的理解。

++b ----> 先b值递增1,再将递增后的b值用来计算
c++----->先用c原先的值用来计算,然后c值再递增1
等效于下面三句:
{a=(b+1)+c;
b=b+1;
c=c+1;}

-a 负号运算,
如果 a=2; -a 就是 -2;
如果 a= -2; -a 就是 2;
-a++ 先算 -a; 后算 自增 1。由于是 后缀加,所以 要等到 出了 c=(-a++)+(++b) 以后 才 自增。
c 的 运算 中, 计算:
int a = 2, b=1;
c=(-a++)+(++b) 处理成:
c=(-a) + (++b); c = (-2) + (2) = 0
算毕,
再算 a=a+1; a=2+1=3. // 这里用的a不是 -2 哦 !
====
简化为:
int a=2,c;
c=(-a++);
printf("%d %d\n",c,a);
结果:-2 3 // 觉得奇怪吧。

- 符号是代表负数,
它是一个单目运算符。

先进行单目运算。
-a++ 也就是-a 自加1

-负号运算符,单目。优先级高于++,具有右结合性。a++的计算步骤是先使用a的值,再使a自增。因此对于表达式-a++,他的值即为-a的值。自增的是a的值而不是-a的值,-号仅决定表达式的值为负。假设a为2,那么执行完-a++后,a的值变为3。表达式-a++的值为-2。

-a代表的是负值,然后运算a++


C语言 一个关于switch循环语言的初级问题
& & & i = 1 ,i%5 是1 ,进入case 1 分支, 输出 # 然后break跳出switch i = 2 , i%5 是2,进入case 2分支,输出& i= 3 ,i%5是3 ,没有case 3 进入default分支,换行,没有break顺序执行后面的case 2 输出 & i=4, ,i%5是4,和i=3一样,也进入default分支 换行,...

问几个初级c语言问题。
long和double的范围根据不同的编译器不一样的。一般标准C中定义的是long的长度只要不小于int的长度就好了,一般的实现的长度都是int的两倍。double就是双精度,没有话说!\\n回车换行就是打印换行咯,清空缓存区。关于格式,楼上基本是对的,但是有一点说明:如果用%8.2f打印,整数部分不一定是8位,...

提几个C语言的初级问题,请各位万能的网友支招
int sum=0;CString out;for(int i=0;i<4;i++){ out=a[i];for(int j=0;j<4;j++){ if(i!=j){ out+=a[j];for(int k=0;k<4;k++){ if(k!=j&&k!=i){ out+=a[k];cout<<out<<" ";out="";sum++;} } } } } 2. 冒泡法 找个temp中间变量就行 3.int sum=...

C语言初级问题
对了,这是一个错误,因为a是一个指向变量的指针而不是指向常量的地址。而“right?” 是一个字符串常量。所以会出现error。 那么这个题目是一样的道理。 “right?” 是一个常量 而不是ss[1]所指向的变量。所以会出现error。明白了么? 不明白再问我啊。希望对你有所帮助,呵呵。在 c 编译器...

C语言初级问题
代码2是因为你在输入时定义的格式问题。照这个格式scanf("%s%s",c,s); 输入,系统默认遇到空格或回车时为一个字符串结束。你可以改成两句写。代码1 for(i=0;c[i]!='\\0';i++);for(j=0;s[j]!='\\0';j++)c[i++]=s[j++];c[i]='\\0';这边又问题,你在执行这句话后for(i=0...

问一个超级C语言初级问题
superred1虽然给楼主修改了格式和易用性,但肯定还是得不到楼主想要的结果。因为楼主的程序中存在两个主要问题导致得不到正确结果。第一:fseek(fp, (long)argv[2], 0);楼主希望把文件偏移到argv[2]指定数字的偏移处,但argv[2]是指向字符串的指针,楼主直接long强制转换,只是转换了地址,仍得不...

C语言初级问题请教
b!=a 如果为假、 那么判断c<10是否为真 1.c<10 真 那么 整个表达式为真 while(真) 继续循环.2.c<10 假 那么 整个表达式为假 while (假) 退出循环.现在懂了嘛.不迷惑了吧.再巩固下看个例子:int X=0,y=3,z=2;if(x++&&y++)z--;else if(x+1==6\/\/y--)z++ 问X,...

C语言的一个初级问题!
结果是8 首先应该定义i,s的类型为整型,即在i=1,s=3;上一行添加语句int i,j;初始i=1,s=3;s+=i++表示s=s+(i++);相当于同时执行{s=s+i,i=i+1;},if(s%7==0) continue;表示如果s是7的倍数,则跳出档次循环准备进行下次循环;else ++i;表示如果s不是7的倍数,则进行++i,i...

c语言初级问题
include<stdio.h> int f(int,int,int);void main(){ int year,month,day,Number;scanf("%d %d %d",&year,&month,&day);Number=f(year,month,day);printf("number is %d day\\n",Number+day);} int f(int year,int month,int day){ int number1=0,i;int a[13];if((year%4==...

一个C语言的初级问题?
递归调用,mystery( a, b - 1 )也是调用int mystery( int a, int b )这个函数,可以这样理解:mystery(5,3) = 5 + mystery(5,2) = 5 + 5 + mystery(5,1) = 5 + 5 + 5 = 15;所以这个函数返回a *b, 前提是b大于等于1,否则会陷入死循环!因反复递归,堆栈会使用完而程序崩溃...

章贡区19583313601: 一个c++初级的问题,希望大家解答 -
惠奖正堂: #includeusing namespace std; void main() { int array[9]={15,27,69,105,127,169,202,230,251}; int i; int z[8]; for(i=0;i

章贡区19583313601: 问C++的几个初级问题 -
惠奖正堂: 第二个问题…… 你必须理解计算机是如何表示浮点数的,然后就能知道浮点型是没有办法完美表达形如11.17或者50.25这种数字的.参考:http://msdn.microsoft.com/library/CHS/vccore/html/_core_IEEE_Floating.2d.Point_Representation_and_Microsoft_Languages.asp?frame=true

章贡区19583313601: 问个C++中的初级问题; 在C++中,c=( - a++)+(++b)里的 - a代表什么, - a++先算哪? -
惠奖正堂: -a 负号运算,如果 a=2; -a 就是 -2; 如果 a= -2; -a 就是 2; -a++ 先算 -a; 后算 自增 1.由于是 后缀加,所以 要等到 出了 c=(-a++)+(++b) 以后 才 自增.c 的 运算 中, 计算: int a = 2, b=1; c=(-a++)+(++b) 处理成:c=(-a) + (++b); c = (-2) + (2) = 0 算毕,再算 a=a+1; a=2+1=3. // 这里用的a不是 -2 哦 !==== 简化为: int a=2,c; c=(-a++); printf("%d %d\n",c,a); 结果:-2 3 // 觉得奇怪吧.

章贡区19583313601: C++初学者问一个很基础的问题 -
惠奖正堂: #include "stdafx.h"//加上下面两句.#include using namespace std;int main(int argc, char* argv[]){ int i = 1,sum = 0; while(i<=100) { su...

章贡区19583313601: c++语言中的几个小问题(简单) -
惠奖正堂: 以下程序为C语言,C++同理 限于时间关系,只做左边那个,其他的其实是左边那个的变种 开发环境 ViSual Studio 2013 首先,为了能使用printf需要引用stdio.h#include <stdio.h>然后定义星星的行列数 static int MAXW = 8;//行 static int MAXH ...

章贡区19583313601: 一些C++的简单入门问题 -
惠奖正堂: (1)不会啊!要press any key才关闭啊!(2)main是主函数,int main是返回值是整型的主函数,void main是无返回值的主函数;(3)返回值就是主函数前面的数据类型,比如,前面你问的int main中的int 就是返回值的类型,这种函数要在函数末加上 return ;语句.(4)参数列表就是int main(int a);中的int a;(5)int m(int,int)是函数声名,不用列出参数,是表示m中有两个整型参数;(6)if(a%2)表示如果a除于2没有余数就不执行if语句,否则的话执行if 语句.

章贡区19583313601: 初学C语言,问关于C++的一个简单问题. -
惠奖正堂: 可以,书上那个应该是在函数调用那块儿吧,一般情况下自己写函数是不用那么麻烦的.呵呵,我二C今年刚刚过~考三次了,终于过了~幸福ing

章贡区19583313601: c++的新手问题 -
惠奖正堂: *a=声明a是指针,给它赋的值是b的地址,这时&的作用是取b的地址表明b是a的引用,也就是a和b共享同一个地址,节约空间,修改b的值也就是在修改a的值.这里的&作用是引用的意义,和上面的&不一样...

章贡区19583313601: 初学C语言,问关于C++的一个简单问题书上给了串代码,比较两个整
惠奖正堂: 当然可以,只是原代码更符合模块化标准,就是说将比较单独写成一个函数如果其它地方要调用的话就可以直接调用,不用重新写了.

章贡区19583313601: 关于C++的初级问题
惠奖正堂: 你的C++教程有问题啊!标准C++包头文件#include <iostream>没有后缀.h这加.h是C的特点现在我们都不用了

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