c语言中,&的用法是怎样的?

在线求帮请教一下,c语言中,&的用法是怎样的?
最新回答
痴人终久别

2024-10-22 15:40:42

结果是3

解答过程:

首先算a^b     

^表示异或    十进制a=1, 等于二进制0001 ;十进制b=2,等于二进制0010

异或为对应位不同时取真,故0001^0010结果为0011,即为十进制的3


再算 (a^b) & c

&表示按位与,a^b的结果为3,即二进制的0011

c=3,即二进制的0011

0011&0011=0011

何谓按位与?  这个例子来说,按位与就是从左起,第一位与第一位求与运算,第二位与第二位求与运算,以此类推,1&1=1 ,1&0=0, 0&1=0,  0&0=0  这个总该知道吧

故结果为3。

相逢即是缘分

2024-10-22 10:03:57

%作为运算符是用来取摸的,也就是取余,给个列子:5%3=2
作为输入输出格式符时如:scanf("%d",&a),printf("%d",a);
这时%+格式表示a以什么样的格式输入输出。还有%c,%e,%f等等,分别表示以字符型,浮点型输出,后两个中e是科学计数法输出的。
一般就这两种吧
流连染紫旳悯〆

2024-10-22 16:52:29

c语言中
*是二元运算符:乘号,用于将两个表达式的值相乘;
也是一元运算符:取值,用在指针表达式的左边,取指针指向的存储位置的值。
孤则酒灌

2024-10-22 14:26:37

&有很多种用法:
二进制按位与如,a&b
取地址:如int *pa=&a;
两个&&:逻辑与,如:(a>0)&&(a<100)
在C++中还可以表示引用。。。
还有什么不明白的,可以继续追问~~
追问
scanf("%d&%d",&a,&b);这是我刚才写的程序一部分,为什么这个时候我必须键入11&22才行,而去掉&,成scanf("%d%d",&a,&b);就可以直接输入11 22就可以了
追答
这个问题是这样的,首先,这这里,&是用作取地址符,一个变量只是一个符号,它对应于相应的地址空间(大小有所不同,比如char占一个字节地址空间,int占4个字节(32位系统)),那么你写数据的时候,是把数据写到对应的地址空间。。。。
其实这个你们初学者还是不要去深究吧,免得把你们给弄晕了,其实你们只要记住,scanf的时候要用到取地址符,而printf不需要,记住这个就足够了,等你们以后学多了,自然就懂得这些东西了,现在不用感到困扰~~~
辞慾

2024-10-22 09:53:31

这个符号表示获取你设定的变量的地址 因为我们知道计算机内部存储数据都是按照内存地址存的 只有给了地址 计算机才能把数据存入
所以在读入数据的时候都要存进变量的地址才行 否则scanf是无效的