#12
|
|||
|
|||
在codepad.org跑的话,即使同一个程式,跑两次三次,结果也都是不同的,更不要说两个程式了。
在我的机器上,dev-c++ 4.9.9.2 跑这两程式,左右俩数相同,中间不同。 换别的编译器跑这俩程式,左右俩数也是不同。 这俩程式,逻辑上没有什么问题。
__________________
收购各位版友的四字母com、数字米com/net/cc、三杂米com、拼音米。价格随行市价。站内联系。 |
#13
|
||||
|
||||
所以是否可以假設,因為程式的內容有些許不同,就會影響了它對記憶體內存的位址安排?這是我自己猜的。
|
#14
|
|||
|
|||
位址应该是运行时由操作系统分配的,而不是程式编译时分配的。
打印出来的地址只是逻辑地址,并非物理地址。
__________________
收购各位版友的四字母com、数字米com/net/cc、三杂米com、拼音米。价格随行市价。站内联系。 |
#16
|
||||
|
||||
再回到這邊來,愈搞愈糊塗。
先簡單的問好了,printf("%p %p",x,&x); 求變數x的位址時,一定要&x嗎?那printf("%p",x)時,是得到什麼的值? 例如下面的寫法: #include <stdio.h> int main(void) { int x=10; printf("%p\n",&x); printf("%p",x); return 0; } 得到的結果是: &x==>000000000022FE5C x==>000000000000000A 雖然%p是求位址,但只寫x它也給出答案值,這表示? |
#17
|
|||
|
|||
&x==>000000000022FE5C 这个当然是位址
x==>000000000000000A 这个就是x的值(10),写成16进制:A
__________________
收购各位版友的四字母com、数字米com/net/cc、三杂米com、拼音米。价格随行市价。站内联系。 |