C语言一个符号问题!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言一个符号问题!!相关的知识,希望对你有一定的参考价值。
我想问下&符号什么意思
注意:不是两个&(&&),而是一个&(&);
也可以是位与运算符,如:
A与B都是二进制数
A= 10110011
B= 10101001
A&B=10100001
将A,B对应为比较,两者为1,A&B对应位上为1,否则为0 参考技术A 1.按位与 运算符,二进制位运算符
1&1==1
1&0==0
0&0==0
2.取地址运算符,取变量地址。 参考技术B &有三种用法:
1、是逻辑位运算符;
2、是非短路“与”逻辑运算符;而&&是短路“与”逻辑运算符
3、输入时的需要获取的逻辑地址 参考技术C 1 取地址符号,比如要得到变量a的地址,而且赋给指针p,写成p=&a;
2 按位与运算,通常用来对某些位清0或保留某些位.如c=a&b; 参考技术D 在输入操作中,他是取地址符,楼上的有说
在位运算中,他是 “按位与” 的 位运算符 第5个回答 2012-07-15 其实&这个符号是一个取地址的符号,是指向那个变量的一个地址,而&&是一个逻辑运算符
C语言++符号的问题!vc++6.0和Dev-C++运行结果不一致!
#include<stdio.h>
int main(void)
int num=1;
while(num++<=2)
printf("%d",num);
getchar();
return 0;
VC里边是34,Dev-C里边是23。
我主要想知道那个++,出循环之后还加不加1了?++是判断条件,那它到底是不是属于循环的呢?!!!
to arongustc:
不好意思说错了,C primer plus里面关于后缀++的解释得到的也应该是3
原文: while(shoes++<18.5)这个表达式将达到19,因为shoe将在比较之后而不是之前增加
只到19。。。
你的程序里,while里面的表达式可以用括号写出来,更明确一点。
while((num++)<=2)
注意:这里的num是变量。当num自增之后,值会发生变化。也就是说num++的值会发生变化。
标准C里面的这样的。
int num=1;
num++;//相当于num=num+1;
也就是说,运算之前的值num是1.运算之后的num值是2.
所以num++也是一个变量,所以你的问题也很明确了。一个变量的值和2做比较。显然是一个判断表达式。
至于不同编译器中为什么结果不同,具体情况是这样的,由于自增符在不同的编译器中是不同的表现方式。但是通用的编译器,还是按照++符号和变量的位置来判断的。(需要在熟悉编译器的情况下或者在汇编中查看代码。使用debug模式。)
下面说通常情况
例如
int i=0;时
++i和i++。的情况分别是:
++i 这时候,++在i的左边,就先自增,在赋值。也就是说。运算之前i的值是1,赋值之后的值是1.
i++ 则不同,++在i的右边,则先赋值,再自增。也就是说。运算之前i的值是0,赋值之后的值是1. 参考技术A 后缀++,也就是postfix ++,表达式的值就是num的值,但是num会++。
++当然属于循环,因为是出现while的条件表达式中,而条件表达式会在每次循环时求值,直到false为止。这里很显然,Dev-C++的输出是正确的。
VC6相对来说比较老,对标准的支持不是很好,建议使用vc2003以上的版本。
在vc2010中,得出与Dev-C中相同的结果。
楼主可以参考c++标准的文档中的6.5和6.4。追问
嗯,C primer plus里面关于后缀++的解释得到的也应该是3
原文: while(shoes++<18.5)这个表达式将达到19,因为shoe将在比较之后而不是之前增加
只到19。。。
那C等级考试用的什么标准?笔试也是和VC++6.0标准一样吗?那岂不是答案有歧义?
等级考试的我就不清楚了,如果考试用vc6来验证结果,那我只能说遗憾。不用太在意这种考试的结果,因为没多大意义,只要自己心里明白就行。
参考技术B 找到这个问题的答案,还不如不写这种带歧异的表达式,估计这个根本在标准里没有定义追问这是我们老师上课举例的一个问题,他给的答案是num最后是4,C primer plus里面关于后缀++的解释得到的也应该是4,而且里面并没有说这是不明确的定义,只有一个表达式里面有两个++才可能导致不同环境或编译器的差别把,比如y=n++ + n++;
现在我的问题就是到底怎么解释这个差异?两个编译器运行结果不一样?虽然我觉得前者应该是对的
问题是它不一定解释得清楚,如果标准没有规定,它得值完全依赖编译器,根本没有道理可讲
参考技术C 百度一下 傻蛋以上是关于C语言一个符号问题!!的主要内容,如果未能解决你的问题,请参考以下文章