本文目录一览:
C语言中a='E',那a的值是多少
看题的意思应该是
union{
int k;
char i[2];
}*s,a;
s=a;
s-i[0]=0x39;
s-i[1]=0x38;
printf("%x\n",s-k);
这样吧?应该是考核共用体的,不是结构体。
如果int是4字节的话打印出来应该是0xcccc3839.看样子应该是VC平台。
共用体里里面定义的成员共用相同的存储空间,空间大小按照成员中最大的空间分配。
所以k和i[2]共用一块4字节内存,Win32下低字节在前,所以在内存顺序是
k0 k1 k2 k3,但这4个字节又与i[2]共用,即k0与i[0]共用,k1与i[1]共用,
所以i[0]=0x39,i[1]=0x38后同时给k0,k1赋值了。
由于VC调试态下默认将内存空间初始化为0xcc/0xcd,所以会k2=0xcc,k3=0xcc
打印出来k就是k3 k2 k1 k0 就是0xcccc3839了
求解c语言里面a的值
这个首先要注意
+=
-=
*=
是从右向左算的
所以先算
a*=a ,
a自身乘以a
所以
a变成100
a-=100
注意a已经变成100了,所以a变成0
a+=0
结果还是0
C语言程序中" a"代表什么数据
" a"代表的是字符串。。。char s[] = "a";
'a'代表的就是一个字符了。。。char c = 'a'
希望对你有帮助。。。。。仍有问题可以HI我。。。
a在c语言中是什么意思?
它没有特别的含义,就是一个普通的变量名或者是一个字符常量。
变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变的。在c语言里面a就是个变量。
注意
a-=a的意思为a=a-a,先用a减a,然后再将得到的结果赋值给a。-=实际上是一种缩写形式,使得对变量的改变更为简洁。
运算时,可以将其写成熟悉的形式,从右向左依次计算,注意在每次计算时,变量的值会发生改变, 如不注意,就会导致错误的情况发生。