c语言问题:%=,+=,-=,*=,/=,<<,>>,if(!a)都代表什么?怎么用?

大哥们,我想请教一下,c语言问题:%=,+=,-=,*=,/=,<<,>>,if(!a)都代表什么?怎么用?
最新回答
落花缤纷下

2026-01-19 21:35:59

呵呵,你是新手吧。你是一个自学者,一直在探索C语言,这次把很多疑问提了出来,是这样吧?让我来回答你的疑问
%=,+=,-=,*=,/=是复合赋值运算符,用法:a%=b就是a=a%b,a+=b就是a=a+b,
a-=b就是a=a-b,a/=b就是a=a/b。这个规律你也发现了吧,就是a+=b当成a+b后,放到a里面。
类似的,a*=b就是a=a*b。

<<和>>都是 位运算符 ,如果有一个数a=255,要把它转换成 二进制形式 即11111110,<<是位左移运算符,如果a<<1则11111110往左移一位,1多出来了1个,丢掉,即11111100,再转换成十进制数,即253。,>>是位右移运算符,如果a>>1则11111110往左移一位,0多出来了1个,丢掉,左边补上0,即0111111,再转换成十进制数,即127。
用法:a(是一个数字)<<(或>>)b(移动的位数)。

if是判断语句,如果( )中的表达式的值非0,则执行下面{ }的语句。
!是”非“的意思,跟在它后面的东西和她(即!)的值必定是1或0。
如(!1)=0,(!1000)=0,(!非0值)=0,(!0)=1。
if(!a)时,如果a=0,则执行{ }中的语句。
举个例子:
int a=0
if(!a)
{
printf("a=0");
}
此时输出a=0.
但如果a不等于0,则不执行"printf("a=0");"

很高兴为你回答问题。
蜜糖

2026-07-22 06:34:42

a =b相当于a=a b,其它的类似,<<是移位(二进制),a<<b相当于a乘以2的b次方,>>是除。if(!a)就是if(a==0)