C語言關於全域性變數問題50分

2022-02-22 09:48:53 字數 1003 閱讀 6896

1樓:傲世修羅王

因為你的 int *pf(int x, int n)函式返回的是陣列指標,如果k定義為區域性的話,等函式返回後,k已經銷燬了,所以結果不正確,如果非要定義成區域性的話,那麼用malloc分配記憶體即可。

1. 加標頭檔案#include

2. 在int *pf(int x, int n)函式中新增int *k = (int *)malloc(max * sizeof(int)) ; 即可

int *pf(int x, int n);for(m=0; m

printf("k=%x\n", k);

return k;}

2樓:匿名使用者

因為在main和pf兩個函式中都用到了這個陣列k,所以k[max]必須是全域性變數

如果把它定義為區域性的,則在其它函式中無法訪問;兩個函式中各自定義一個k陣列,那麼這樣的兩個k陣列時完全不一樣的。

原題中的兩個函式中使用的k陣列都是同一個,所以必須是全域性的。

3樓:務雅柏

加標頭檔案#include 然後在int *pf(int x, int n)函式中新增int *k = (int *)malloc(max * sizeof(int)) 開空間

4樓:

「全域性」者,全域性也!(=_=!!)

區域性變數的生命週期僅限於它宣告所在的函式體 出現右大括號 "}"之前。

而全域性變數則使得其至少在整個檔案中的任何地方任何函式 都可以使用。

這是全域性變數的需求。

很明顯,你的函式意圖就在此:main函式 和pf 都要使用,所以要宣告為全域性。

5樓:婁光興

說明兩點:

1 區域性在函式pf裡不行。因為陣列k 等到函式呼叫完畢,就撤銷了,被刪。

2 區域性在main函式

int total=0, k;

int k[max]; //int的k 和 陣列k 不要同名

c語言問題區域性變數能不能和全域性變數重名

可以,只不過區域性變數可以覆蓋全域性的,就是在區域性變數的範圍內全域性變數不起作用 能,區域性會抄遮蔽全域性 要用襲全域性變數,需要使用 區域性變數bai 可以與全域性變數同名du 在函zhi數內引用這個變數時,會用到dao同名的區域性變數,而不會用到全域性變數。對於有些 編譯器而言,在同一個函式內...

C語言中,const如何修飾全域性變數 區域性變數?有什麼好處

const主要是為了程式的健壯型,減少程式出錯.最基本的用法 const int a 100 b的內容不變,b只能是100也就是宣告一個int型別的常量 define b 100 int const b 100 和上面作用一樣 const指標和引用一般用在函式的引數中 int m a 出錯,常量只能...

axureRP8 0關於全域性變數的問題

這樣的情況個人建議用360安全衛士全面體檢修復,修復後就可以正常。程式語言一共有多少種?什麼是程式語言?一共有哪幾種語言?計算機語言的種類非常的多,總的來說可以分成機器語言,組合語言,高階語言三大類。計算機所能識別的語言只有機器語言,即由0和1構成的 但通常人們程式設計時,不採用機器語言,因為它非常...