最近在看有关C语言的东西。看的过程中遇到些问题。想了好久才弄明白了。于是做下记录。下面是一个最简单的c语言程序:
所使用的编译器是: turboc 2.0
main()
{
int i;
int j;
int k;
scanf("%d %d",&i,&j);
printf("%d \n",i+j);
k=(int)&i;
(char)i=300;
printf("%d \n",*(int *)k);
}
测试结果如下:
D:\vs>tesc
20 30
50
44
D:\vs>tesc
200 30
230
44
D:\vs>tesc
303 30
333
300
D:\vs>tesc
700 30
730
556
D:\vs>tesc
900 30
930
812
D:\vs>
(char)i=300; 在赋值的时候。采取类似截断的方式赋值的。只把300的低位赋值给i。高位损失了。