程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> c語言的函數問題

c語言的函數問題

編輯:C語言問答

c語言的函數問題

#include "stdio.h"
void p1();
void p2();
static int a=5;
int main()
{
 printf("a=%d\n",a);
 p1();
 p2();
  return 0;
}
void p1()
{
 printf("a*a*=%d\n",a*a);
 a=2;
}
void p2()
{
 printf("a*a*a=%d\n",a*a*a);
}

為什麼p2()的a*a*a=8呢?

全局變量不是a=5嗎?

P2()的不是沒有定義局部變量嗎?

最佳回答:

p1() 中的a沒有定義,就是全局變量,然後p1()就把全局變量的值給改了
追問:
p1()改變了全局變量的值,會影響p2()的嗎?
回答:
會的...p2()在p1()後面運行,這時候a已經變了
追問:

哦,那如果p2()函數中又定義 int a=10,這時的a就變成10了嗎?

追問:
請問那如果p2()函數中又定義 int a=10,這時的a就變成10了嗎?
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved