c语言,a>>=1是什么意思。

如题所述

你肯定是打错了,c语言中没有[[1]]这种符号,一定会报错。你是指a[][1]吗?a[]是a[]比a少一维,我具体给你解释下。
几个元素可以组成数组,而几个一维数组可以组成二维数组,如此一直增加维数。
比如说a[0]=2,a[1]=1,a[2]=3,组成一个一维数组,这就是a.但是,你要注意,a不是直接把这些东西都存着的,a只存首地址。
假设定义了一个二维数组a[3][3].这时候a[0],a[1],a[2]就不再是元素了,而代表的是一个有三个元素的一位数组,而此时的a就是一个二维数组。如果感觉这个有点困难没关系,等学习了指针什么的久很好理解这个了。
再说说你给的程序,你是不是在疑问为什么gets()直接给str1 就可以了?还有那个输出函数,为啥只用给str1就可以?
这得给存储方式有关,字符串就是字符的二维数组,gets()需要输入字符串的首地址,这个还算好理解,因为你应该学过了scanf()了,二者差不多,关键是为什么输出函数直接就写了str1呢?printf()之前你学的一般都是(printf("%d",a[1]));这种类型的。这里为啥要填一个地址参数呢?这是因为你前面是%s s代表字符串,字符串本身就是二维的,因此,你当然不能只给他一个单独的元素了,那么,你给了首地址他如何知道你这个字符串是啥呢?因为字符串都是顺序存储的,更重要的是字符串在结尾处有个标志“/0”,因此,你只要给力他首地址,他就知道从哪里开始,从哪里结束了。
纯手打,望采纳。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-08-20
a向右移1位 、再赋给a
~
~
第2个回答  2017-08-20
对于非负整数a,它等同于:
a=a>>1;
也等同于:
a=a/2;本回答被网友采纳

c语言,a>>=1是什么意思。
就是将数据按二进制右移一个单位,最前面补0例如:1111 (15)0111 (7)1010 (10)变成了:0101 (5)

c语言中a>>=1表示什么意思
将a对应二进制值于向右移一位,类似于除以2

c语言 a>>=1
a>>=1; \/\/a现在:0010 变成2;即a = 2;

c语言中>>=是什么
假如是变量1>>=表达式2,则是将变量1的值化成二进制数,然后向右移值(表达式2)个位,低位舍去,然后再赋值给左边的变量。例子:int a=5; a>>=1;结果就是2.5的二进制数为101B,向右移一位,则是10B,就是2D。

C语言中>>=什么意思
所以 a >> 3 只是得到新的值而不会改变a。复合赋值运算符 即 a <op>= b 等价于 a = a <op> b,包含了赋值运算。所以,a >>= 3 即 a = a >> 3 ,改变了a的值。另外,自增自减运算符a++、a-- 等价于 a += 1, a-= 1,也会改变变量的值。....

C语言中>>=是什么意思
>>的意思是右进位 比如a>>=b其实就等于a=a>>b;就好象a+=b就等于a=a+b

C语言中“>>=,<<=,&=,^=,|=”分别表示什么意思?请举例说明
1、C语言中的 >>= 意思为:右移后赋值 代码示例为:x = 8; x >>= 3;右移后结果为:00000000 00000000 00000000 00000001 2、C语言中的 <<= 意思为:左移后赋值 代码示例为:x = 8;x <<= 3;左移后赋值结果为:00000000 00000000 00000000 01000000 3、C语言中的 &= 意思为:按位与...

C语言中的>>是什么意思
>> 表示右移运算符 用法:把一个数换成二进制数向右移动若干位!例如:当a=017 \/\/八进制 a=00001111 二进制 a=a>>2 就是把二进制向右移动2位,a=000011 同理有<< 用法相识 希望可以帮助你!!

c语言a<<1与a<<1有什么区别吗?
c语言 a<<=1与a<<1的区别:1、表示的含义不同 a<<=1表示左移运算后,对a进行赋值。a<<1表示只对a进行左移运算。2、运算的结果不同 a<<=1在运算后,a的值会变成a进行左移运算后的值。a<<1在运算后,a的值不会改变。

C语言中“>>”是什么意思
这是C语言中的“右移运算符”。一般情况下,他是按位操作。特点:1.双目运算符,就像+、-、*、\/一样,格式为(数1)>>(数2)2.数1是被操作数,如被减数、被除数等;数2是右移位数。3.优先级低,结合性:从左向右运算 如:8>>1=?表示将被移数向右移动1位 如何操作?1.化十进制数为...

相似回答