簡體   English   中英

C:全局,靜態變量理解

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM