![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C语言中&怎么用?
C语言中&怎么用?先搞清楚啊.不是&&,是&,我要的不是求地址的功能,另外一个..高手解答.谢谢....
C语言中&怎么用?
先搞清楚啊.不是&&,是&,我要的不是求地址的功能,另外一个..
高手解答.谢谢. 展开
先搞清楚啊.不是&&,是&,我要的不是求地址的功能,另外一个..
高手解答.谢谢. 展开
4个回答
2013-08-14
展开全部
&按位与 属于位操作
一般用在取内存中特定位的值
如有'11111111'我要取其中从左起第三位的值,就用它按位与'00001000'
关于&位操作的技巧还有很多,你可以去自己搜一下
还有一个应用就是用于关系运算中,如
有两小段程序:
sample 1:
int main()
{
int s=0;
if(s&&s++)
{
cout<<"??"<<endl;
}
cout<<s<<endl;
}
sample 2:
int main()
{
int s=0;
if(s&s++)
{
cout<<"??"<<endl;
}
cout<<s<<endl;
}
sample 1的输出结果为:0
sample 2的输出结果为:1
当然这个程序可能不同的编译器兼容性有问题(主要针对于if中的语句到底执不执行),但你从S的值中可以得到,&&中只要得到前面的数为0它就不会算后面的了,但是&却不一样,它还是要算后面的与后面的一起与,因为它是按位与,它会将你传入的数一位一位的做与运算,所以它必须要算&后面的数。
一般用在取内存中特定位的值
如有'11111111'我要取其中从左起第三位的值,就用它按位与'00001000'
关于&位操作的技巧还有很多,你可以去自己搜一下
还有一个应用就是用于关系运算中,如
有两小段程序:
sample 1:
int main()
{
int s=0;
if(s&&s++)
{
cout<<"??"<<endl;
}
cout<<s<<endl;
}
sample 2:
int main()
{
int s=0;
if(s&s++)
{
cout<<"??"<<endl;
}
cout<<s<<endl;
}
sample 1的输出结果为:0
sample 2的输出结果为:1
当然这个程序可能不同的编译器兼容性有问题(主要针对于if中的语句到底执不执行),但你从S的值中可以得到,&&中只要得到前面的数为0它就不会算后面的了,但是&却不一样,它还是要算后面的与后面的一起与,因为它是按位与,它会将你传入的数一位一位的做与运算,所以它必须要算&后面的数。
2013-08-14
展开全部
这是个“按位与”运算符
参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1,否则为0.
0&0=0, 0&1=0, 1&0=0 , 1&1=1,
参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1,否则为0.
0&0=0, 0&1=0, 1&0=0 , 1&1=1,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
?与:要组合起来用,这个运算符称为三目运算符,好像是C语言中唯一一个三目运算符。
格式:表达式?值:值。
比如,a=(b>c)?5:6。就是说b>c这个表达式若为真,则a=5,:符号前的一个值,若为假,则a=6,:符号后一个值。
等价于if…else结构。
希望我的回答能帮助到你。
格式:表达式?值:值。
比如,a=(b>c)?5:6。就是说b>c这个表达式若为真,则a=5,:符号前的一个值,若为假,则a=6,:符号后一个值。
等价于if…else结构。
希望我的回答能帮助到你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
![](http://iknow-zhidao.bdimg.com/static/question-new/widget/value-comment/img/support_100.5a62ac7.gif?x-bce-process=image/format,f_auto/quality,q_80)
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询