[英]C: Global ,Static variables understanding
在下面的程序中。 我有一個疑問。 我已經聲明了一個全局變量。 我是
在函數中打印全局變量的地址。 當我不改變global的價值時,它給了我相同的地址。 如果我在全局變量中進行了任何更改,為什么給我不同的地址? 這樣,它也在靜態發生。
#include<stdio.h>
int global=10 ; // Global variables
void function();
main()
{
global=20;
printf ( " %p \n" , global ) ;
printf ( " Val: %d\n", global ) ;
function();
new();
}
void function()
{
global=30;
printf ( " %p \n" , global ) ;
printf ( " Val: %d\n", global ) ;
}
謝謝。
您不是在打印全局地址,而是在打印其值。 要打印地址:
printf ( " %p \n" , & global ) ;
請注意與號,即“地址的”運算符。 “%p”格式化程序僅控制輸出格式,它不會使printf()神奇地為您獲取地址。
您不打印變量的地址。
要打印地址:
printf("%p\n", &global);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.