char a=0x20; a=a<<1; printf("%d",a); 的运行结果怎么求?
a=0x20 十进制等于 2*16 0 = 32 左移一位,等于 32乘2 得 64 printf("%d",a); -- %d 是按十进制 输出,就是 64。
char a=0x20; a=a<<1; printf("%d",a); 的运行结果怎么求?
a=a<<1 左移一位,等于乘2 a=0x20 十进制等于 2*16+0 = 32 左移一位,等于 32乘2 得 64 printf("%d",a); -- %d 是按十进制 输出,就是 64。
...<stdio.h> main(){char a=4;printf( %d\\n ,a=a<<1);}程序运行结果怎...
4是a的ascii码,那么a在内存中的存储是00000100,a=a<<1,即a左移一位,你那就变成00001000 也就是8了 输出的结果就是8
若定义char a='A',则执行printf("%d",a),屏幕显示
若定义int a=5,则执行a+=7,a的值为 12 若定义int a=0x20,则执行printf("%o",a),屏幕显示 20 若定义int a=1,则执行a<<2,a的值为 4 若定义int a=8,则执行a>>2,a的值为 2 若定义int a=20,则执行printf("%x",a),屏幕显示 14 ...
...char *p="abcdefgh"; p+=3; printf("%d\\n",strlen(strcpy(p...
首先strcpy(p,"ABCD")这句是说。将ABCD赋值个p,他们之间是怎么赋值的呢,让p指针指向“A”的地址,如果取值的话就*P拿到A了。这个函数返回的值是目标串的地址,也就是p啦,那么p是个指针怎么算地址的长度呢,其实就是strlen("ABCD")啦,为什么,计算机知道的啦,因为p指向了“ABCD”首地址了,...
printf("%d\\n", a=a<<1);这个语句什么意思
位运算的运算符有6种 &按位与,|按位或,^按位异或,~取反,<<左移,>>右移 这里的a是字符型占一个字节8位 所以二进制是 00000100 a=a<<1相当与用手从右边推1位,本来最高位去掉,然后在最低位补0,就成了00001000;再把二进制转换成十进制(%d是输出有符号的十进制),就是8 ...
unsigned char a = 0xfe; printf("%d",(char ) a) ; 为什么编译出来等于...
你不是用了(char)吗?它把a强制为char型了,而char型的范围是-128~+127,0xfe就是11111110,这个数的二进制最高位是1,自然按负数处理了,要对数据位取反+1,那就变成了10000010,你看这是不是-2?
a=3; a+=(a<1)?a:1; printf(“%d”,a);
结果是4.“(a<1)?a:1”是一个“条件表达式”。“?”是条件运算符。如果(a<1)条件为真,则条件表达式的值等于a,否则取值1。这里a=3,a<1不为真,所以整个条件表达式(a<1)?a:1的值取1。所以a+=(a<1)?a:1就变成了a+=1,等价于a=a+1。原来a的值为3,所以a+1=4。然后把4再...
a=3; a+=(a<1)?a:1; printf(“%d”,a); 程序运行结果是
4.第二条语句是a=a+一个值。如果a<1,这个值则取a,否则取1.所以a=3+1=4。
执行int a=1; printf("% d,% d,% d\\ n"
执行int a=1; printf("%d, %d, %d\\n", a, ++a, a++)的结果为3,3,1。这个语句的输出结果不是唯一的,因为对于求值的顺序是不一定的,所以说还有可能输出的结果为1,2,2。当求值的顺序为自右向左是,那么a++先引用1然后再加1,会输出1,然后++a是先加1再引用,会输出3这个结果,...