1樓:匿名使用者
內部和外部都可以的哦~~~~~~ 你的程式在c99的c-free上沒有問題。。。
可能你的c語言版本有問題的說,因為大部分人都用的是vc 6.0~~~~~~
2樓:匿名使用者
宣告是函式體內部,在外部一般都是定義,只有用extern是表宣告
3樓:金色潛鳥
函式宣告定義 放在 主函式以外,與主函式地位 並列,不能放在主函式以內。
函式定義 放在 主函式 以後,那麼在 主函式以前,或 在主函式宣告部分(語句以前)要新增函式原型宣告。
函式宣告定義,若放在主函式以前, 主函式中 則 不需要 函式原型宣告。
程式結構:
int main()
int max(int x,int y) // 函式宣告定義,在主函式以後
。。。 // 其他 函式宣告定義
4樓:幻想之世
可以再內部宣告,要放在定義的變數之前,這樣就行了#include
int main()
int max(int x,int y)
int min(int j,int k)
int sum(int q,int w)
int process(int u,int t,int (*p)(int,int))
在c語言中函式宣告放在主函式外和主函式內有什麼區別
5樓:1223永遠不棄
放在主函式外,從它的位置往下所有的函式都能呼叫該函式
而在主函式內,只有主函式能訪問該函式
c語言中,在main()函式外宣告函式和函式內宣告函式有何區別?
6樓:匿名使用者
//宣告在函式外,宣告後面的函式(無論main還是其他函式)都可以呼叫
//宣告在函式內部,只能在本函式內,宣告後面的區域可以呼叫
7樓:kenny漩渦
函式預設就是全域性的。有沒有宣告只是影響了函式作用區的起點。也就是為了編譯器能找到這個宣告,可以根據需要任意放置。除非你加上staic本地化該函式
c語言中,把變數定義在主函式之外和定義在主函式之內有什麼區別
8樓:韌勁
在程式設計中,時時刻刻都用到變數的定義和變數的宣告,可有些時候我們對這個概念不是很清楚,知道它是怎麼用,但卻不知是怎麼一會事,下面我就簡單的把他們的區別介紹如下:
變數的宣告有兩種情況:
(1) 一種是需要建立儲存空間的(定義、宣告)。例如:int a在宣告的時候就已經建立了儲存空間。
(2) 另一種是不需要建立儲存空間的(宣告)。例如:extern int a其中變數a是在別的檔案中定義的。
前者是"定義性宣告(defining declaration)"或者稱為"定義(definition)",而後者是"引用性宣告(referncing declaration)"。從廣義的角度來講宣告中包含著定義,但是並非所有的宣告都是定義,例如:int a它既是宣告,同時又是定義。
然而對於extern a來講它只是宣告不是定義。一般的情況下我們常常這樣敘述,把建立空間的宣告稱之為"定義",而把不需要建立儲存空間稱之為"宣告"。很明顯我們在這裡指的宣告是範圍比較窄的,也就是說非定義性質的宣告。
例如:在主函式中
int main()
int a; //是定義,定義了a為整型的外部變數(全域性變數)
外部變數(全域性變數)的"定義"與外部變數的"宣告"是不相同的,外部變數的定義只能有一次, 它的位置是在所有函式之外,而同一個檔案中的外部變數宣告可以是多次的,它可以在函式之內(哪個函式要用就在那個函式中宣告)也可以在函式之外(在外部變 量的定義點之前)。系統會根據外部變數的定義(而不是根據外部變數的宣告)分配儲存空間的。對於外部變數來講,初始化只能是在"定義"中進行,而不是在" 宣告"中。
所謂的"宣告",其作用,是宣告該變數是一個已在後面定義過的外部變數,僅僅是在為了"提前"引用該變數而作的"宣告"而已。extern只作 宣告,不作定義。
用static來宣告一個變數的作用有二:
(1) 對於區域性變數用static宣告,則是為該變數分配的空間在整個程式的執行期內都始終存在
(2) 外部變數用static來宣告,則該變數的作用只限於本檔案模組
9樓:善雯南婉然
定義在主函式外面是全域性變數,分配的記憶體在靜態記憶體,整個工程內都可以訪問到他的值,但是優先順序低。只有程式退出後才會釋放他的記憶體。衝突的時候優先使用區域性變數。
定義在函式內的變數時區域性變數,分配的是記憶體堆疊,只有特定的函式內可以訪問到,退出函式後自動釋放記憶體堆疊。優先順序高
10樓:ict上善若水
最後的值是100.
在函式體之內的i和函式體之外的i是存放在兩個記憶體位置的,在內部能夠看到的是內部生存期的。
建議你去看下變數在函式的生存期和記憶體中的位置,會有更深刻的理解。
11樓:宋建澤
100唄,定義在函式裡面,改變的是函式裡面的量,外面的沒變,比如你在主函式裡執行i=i-1,是主函式裡面的i變了,外面的不變
12樓:匿名使用者
定義在主函式之外是全域性變數啊,無論在函式中是否呼叫它,它都存在在記憶體中。main()函式中的屬於區域性變數,在執行時在分配記憶體空間。你那個程式 最後值是100啊,因為主函式外的i被隱藏了。
13樓:徐志尚
全域性變數和區域性變數,j=00
14樓:
最後肯定是100嘍。
變數作用域的問題吧
15樓:匿名使用者
100吧.個人感覺.僅供參考.
c語言中static可以加在函式宣告前嗎?如果可以是
學霸 可以。私有函式只有該類的成員變數或成員函式可以訪問。在c語言中,也有 private函式 它就是接下來要說的static函式,完成物件導向程式設計中private函式的功能。當你的程式中有很多個原始檔的時候,你肯定會讓某個原始檔只提供一些外界需要的介面,其他的函式可能是為了實現這些介面而編寫,...
c 先宣告的函式可以呼叫後宣告的函式嗎
e時代幽默網 可以的,前提是要在先宣告的函式開頭前定義後宣告的函式。例如以下程式段 code start include void a void b int main code end 上面這段程式是無法通過編譯的,原因是b函式在a函式的後面,a函式找不到b函式 但如果程式段改寫成以下這樣就可以了 ...
c語言pow函式,C語言pow函式
丿 pow 函式用來求x的y次冪,x y及函式值都是double型 其原型為 double pow double x,double y 例項 如下 include include void main double x 2,y 10 printf f n pow x,y return 0 擴充套件資料...