在以下程序中。我有一个疑问。我宣布了一个全局变量。我是 在函数中打印全局变量的地址。它给了我相同的地址 当我不改变全球的价值时。如果我对全局变量进行了任何更改 它给了我不同的地址为什么...........?就像它也发生静电一样。
#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 ) ;
}
感谢。
答案 0 :(得分:3)
您不打印全局地址,而是打印其值。要打印地址:
printf ( " %p \n" , & global ) ;
注意&符号,它是“地址”运算符。 “%p”格式化程序只控制输出格式,它不会让printf()神奇地为你取得地址。
答案 1 :(得分:2)
您不打印变量的地址。
打印地址:
printf("%p\n", &global);