菜鸟发言
关于int a的一个问题!一个 int a;语句对计算机来说到底是什么意思?是给a分配了一个int型的内存吗?int s[2]是分配两个内存吗?我知道初始化是给了内存的。。。。求解释
[解决办法]
楼上说的对,int是分配了sizeof(int)个内存单位,分配大小要看编译器的.int s【2】分配两个int内存单位
[解决办法]
我只拿TC做解释(编译系统的不同导致分配的字节数不同)
一个int 是2个字节 每个字节是8个2进制位 他可以存放一个带符号的整数 范围在-32768-32767
也就是说 int a; 这个变量a只能存放这个范围的数,一旦大于这个范围就会溢出,数据就会出错。
同上int s[2];他是个整形数组,代表含有2个Int 型的元素 s[0],s[1]; 你可以把每个元素看成一个单独的 Int 型变量,所以 每个元素的取值范围也是在-32768-32767 超出同样会溢出。
int a,在内存中开辟一个长度为16个二进制位的空间,且空间的首地址是a(编译后就不是a了)
int s[2],在内存中开辟一个长度为32个二进制位的连续空间,每一个元素占16个二进制位,且空间的首地址是s,计算机在找下一个元素的时候,就从首地址跳过16个二进制位,就是第2个元素