c++基础 解释下这段代码每句什么意思和计算机选哪个做答案 为什么 int a=0,b=1,c=2,d=3,m,n,k;b=a++&&c++;d=a++||++c;n=b>a;k=n&&(m=a);谁能回答下下面的追问

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 14:24:42
c++基础 解释下这段代码每句什么意思和计算机选哪个做答案 为什么 int a=0,b=1,c=2,d=3,m,n,k;b=a++&&c++;d=a++||++c;n=b>a;k=n&&(m=a);谁能回答下下面的追问

c++基础 解释下这段代码每句什么意思和计算机选哪个做答案 为什么 int a=0,b=1,c=2,d=3,m,n,k;b=a++&&c++;d=a++||++c;n=b>a;k=n&&(m=a);谁能回答下下面的追问
c++基础 解释下这段代码每句什么意思和计算机选哪个做答案 为什么
int a=0,b=1,c=2,d=3,m,n,k;
b=a++&&c++;
d=a++||++c;
n=b>a;
k=n&&(m=a);
谁能回答下下面的追问

c++基础 解释下这段代码每句什么意思和计算机选哪个做答案 为什么 int a=0,b=1,c=2,d=3,m,n,k;b=a++&&c++;d=a++||++c;n=b>a;k=n&&(m=a);谁能回答下下面的追问
&&只能判断0或1么?——不.&&什么也不判断,它是逻辑与操作符.当它前后的两个变量都不为0时结果为“真”,用1表示;当其中一个变量为0时结果为“假”,用0表示.
这个a++应该是1吧——当a原来是1时,a++执行后a便为1,但要注意b=a++执行后b=0,a=1,原因是++写在a后面,叫后增1符,要等a的值赋给b后,a的值才加1.
n=b>a;是不是这个式子不成立,都会取值为0——不.b=1,而a=0,故b>a是成立的,所以b>a的逻辑结果是“真”,“真”用1表示,所以最后n=1.
k=n&&(m=a); 等效于 k=(0&&0) (0&&0)=1;——又错了.n=1,m=a=0,所以k=1&&0=0,因此最后k=0.
希望有所帮助.