1樓:網友
問:要使用其他檔案裡的外部函式一定要包括,一定要包括那個檔案嗎?
答:可以寫包含正如你這裡寫的:#include""
也可以不寫包含,先分別make為obj,再link多個obj.
只是一般ide幫你做了這個過程,過去我們用命令列就分別執行這些命令的。你在dos狀態下,也可以執行這個過程。
那麼此時,你會發現,你在file2裡寫的static power,如果你的file1裡沒有包含它,那就不能用power了。
問:乙個在函式前加static,就只能被同一檔案內的其他函式呼叫。
為什麼我在file1裡還可以呼叫file2裡的 power 函式?
答:直接include是可以的。因為#include是乙個預處理指令,它的作用是替換,將中的內容替換到你的原始檔中。這樣,中的static變數也就存在於你的原始檔當中了。
所以,在包含了的檔案裡,可以使用中的static變數。
2樓:
因為你用了 #include""
相當於把 全文插入到 #include 的 位置。兩個檔案成乙個檔案。
如果去掉 #include"",再 分別編譯兩個檔案成 .obj, 再鏈結。有static 和 無 static 應當 不同。
cl -ccl -ccl
c語言 函式問題
3樓:每壹段路都是壹種領悟
答案1.陣列可以進行函式之間的傳遞,但是傳遞的是第乙個數字的儲存位置,也就可以理解為陣列在形參和實參之間是以指標的形式傳遞的,所以前面要加&
答案2.在答案1中說了,它傳遞的是指標,也就是說實參傳給形參的是指標,也就是a[2]的位址。
實參中的a[2]就成了sum函式中的a[0],sum函式中的a[-1]也就成了主函式中的a[1],sum函式中的a[1]也就成了主函式中的a[3]
什麼叫詳細啊?
還看不懂,問我,我明天再上,現在睡覺去了。
靠,2樓剛好說反了。
應該改成。a[2]代表的是值,加上&就變成了a[2]的位址了。
4樓:網友
問題1:
sum函式要求傳入的是指標,所以&a[2]代表去陣列第二個元素的指標問題2:
陣列的訪問就是。
address[n] = n[address] = *(address + n);
整個程式來說,是把a[2]的指標位址傳給了sum,sun計算時候取a[2]的前乙個元素和後乙個元素相加,結果賦給a[2],所以實際就是a[2]=a[1]+a[3]=2+4,最後結果是6.
5樓:網友
傳遞給sum函式a陣列的位址,用& 形參裡已經給出形式。
6樓:網友
void sum(int a) 引數是陣列,不是變數,所以呼叫時實參也只能是陣列名或者是位址,而不能是變數。
sum(&a[2]);是把a[2]的位址傳遞給形引數組的首位址,即子函式里的a[0]=a[-1]+a[1]相當於主函式的a[2]=a[1]+a[3]
7樓:網友
sum(&a[2]);是取位址符號,把a[2]的位址傳遞給a
第二問的a[-1]?沒有這樣定義的吧?你可以把你的源程式給我看一下嗎?
c語言函式問題
8樓:網友
ishownumber是程式中定義的實參變數,就是需要輸入的那個量。用這個變數做為輸入,函式shownumber()才能輸出對應的結果啊。
你從鍵盤輸入ishownumber的值之後,這個值就會被當作實參傳遞給函式shownumber()中的形參inumber,經過函式shownumber()的運算,就會輸出相應結果。
用數學中的函式打個比方吧,如f(x)=2x+1是乙個一次函式,其中的f(x)就相當於你**中的函式shownumber,x是自變數,就相當於**中的形參變數inumber。如果再定義乙個變數a的話,比如說a是有理數,此處的a就相當於**中的實參變數ishownumber。只有a取某個固定值(如a=3、或者a=之類的有理數)時,a的值才會被傳遞給自變數x,函式f(x)才能通過函式式得到固定的函式值。
9樓:白了少
ishownumber是乙個變數,在這裡作為實參,不要受inumber影響,inumber是形參,編譯器不在乎它的引數名,只需要知道形參的資料型別。
編譯器只檢查資料型別正不正確。
void shownumber(int )這樣也是可以的。
10樓:網友
這個ishownumber在這裡叫實際引數。
關於c++函式的乙個小問題。求解答,
11樓:海岸餡
//b滿足條件指的是a%b==0;
質數又稱素數。指在乙個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的。
數。函式對於輸入的變數a,如果對於所有小於a的b,存在乙個b滿足條件,就返回0,否則返回1;
因為當出現乙個b滿足條件後 if語句生效,函式終止,返回0;
return 0與return 1就返回值不同,用於根據返回值判斷a是否滿足條件,顯然a是質數返回1,a是合數返回0;
中間的問題不是很懂,不過這是個判斷輸入的a是不是質數的函式;
如果樓主想實現數質數的功能的話,這個函式可以;
12樓:抬頭望那蒼穹
加上大括號你就明白了。
int test(int a)
return 1; //不滿足if條件函式返回值是1}你定義的是返回值為int型的函式,最後就得返回乙個int型資料,至於你要返回哪個數字你可以自己決定的。
13樓:阿彌陀佛
我直接教你個吧,這個太爛了。
int test(int a){
int n=0;
for(int i=2;in=1;
return n; //是素數返回1,不是返回0有什麼問題可以再問。
14樓:網友
return 的是乙個整數你return什麼都不重要一般就0和1用來區別是或者不是素數。
看你的提問應該對程式設計理解不深,建議多看點相關書只要存在乙個b使得a%b==0就是說a不是素數,所以直接放回0,當迴圈結束時也就是說,沒有能整除的整數,也就是素數的意思,所以返回1
希望能幫到你,**不清楚再問。
15樓:網友
1、第3行和第4行的意思是:在2到a-1之間,是否能找乙個數b(2<=b<=a-1),使得a%b等於0,如果找到了,則return 0,即當前這個數a不是素數。
2、如果在2到a-1之間,沒有找到乙個數b ,使得a%b等於0,則說明a是素數。
3、到底想return 0,還是return 1,這是根據你自己的習慣來的,一般大家都喜歡用1表示真,用0表示假,當然,在c語言中,非0即表示真。在這裡呢,當然是return 0表示當前數a不是素數,return 1表示當前數a為素數。
c語言函式問題
void swap2 int c0,int c1 這個函式對嗎?我怎麼沒看到 來的陣列 第一種方法是用陣列作為實參傳入函式,實際上這是將陣列的地址傳入函式,通過地址,函式可以直接修改資料的值,而不用返回值之類的東西。第二種是將資料值傳入函式,這種引數時區域性變數,無論它在函式中的值怎樣變化,都不會影...
C語言函式問題
不是每個函式可以單獨編譯,而是以檔案為單位進行編譯,如果你的檔案裡只包含了一個函式,當然就只有這個函式被編譯了,執行的時候必須是從main 函式開始執行,相當告訴了計算機這一團毛線的頭在哪兒,然後整個線條就可以理順了。在win32平臺下,單獨編譯檔案生成的檔案根據呼叫的形式不同稱為動態庫或者靜態庫,...
c語言外部函式宣告與否問題,C語言函式宣告是要在主函式內部還是外部啊?
絕對是會的,每一個函式都有入口,作業系統 os 需要計算地址並且定址,然後每個子函式都有一個返回值,執行完os仍然有計算和定址,然後返回main,不過這種時間花費很小,並不比一次inta b c的運算多多少,因此不會犧牲很多時間,另外,這種微小時間的付出換來的確實程式的模組化和有序化,顯然是非常值得...