#include<stdio.h>
int main()
{
int i;
char c;
printf("addi=%p,addc=%p",&i,&c);
for(i=0;i<5;i++)
{
scanf("%d",&c);
printf("%d,%d/n",c,i);
}
return 0;
}
[root@bogon cTest]# ./a.out
addi=0xbffcb550,addc=0xbffcb54fd
0,0
0,1
0,2
0,3
0,4
[root@bogon cTest]# ./a.out
addi=0xbfa5e500,addc=0xbfa5e4ff254
-2,0
3
3,0
4
4,0
56
56,0
7
7,0
[root@bogon cTest]# ./a.out
addi=0xbfb58170,addc=0xbfb5816f256
0,1
3
3,0
c,i在内存中相邻存放,但是当往C中存放int型数据时,按低位存放是怎么放的呢?是按4个字节来低对低,高对高么?
特别当按INT型存放时,输入的却是CHar型时又是什么情况呢?
用GCC -S *.C发现完全看不懂啊,汇编代码有些奇怪。