n = scanf("%d",n);
創(chuàng)新互聯(lián)主營肥鄉(xiāng)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),肥鄉(xiāng)h5微信平臺小程序開發(fā)搭建,肥鄉(xiāng)網(wǎng)站營銷推廣歡迎肥鄉(xiāng)等地區(qū)企業(yè)咨詢
這一句有問題
1. scanf 函數(shù)是有返回值的,它的返回值可以分成三種情況
1) 正整數(shù),表示正確輸入?yún)?shù)的個數(shù)。
例如執(zhí)行 scanf(“%d %d”, a, b);
如果用戶輸入”3 4”,可以正確輸入,返回2(正確輸入了兩個變量);
如果用戶輸入”3,4”,可以正確輸入a,無法輸入b,返回1(正確輸入了一個變量)。
2) 0,表示用戶的輸入不匹配,無法正確輸入任何值。如上例,用戶如果輸入”,3 4”,返回0。
3) EOF,這是在 stdio.h 里面定義的常量(通常值為-1),表示輸入流已經(jīng)結(jié)束。在Windows下,用戶按下CTRL+Z(會看到一個^Z字符)再按下回車(可能需要重復(fù)2次),就表示輸入結(jié)束;Linux/Unix下使用CTRL+D表示輸入結(jié)束。
你這個輸入一個返回值就是1,因此n也會一直等于一
void bar(int p) 是拷貝傳遞,函數(shù)內(nèi)部的p與外面?zhèn)魅氲膉只是值相同,并不是同一個內(nèi)存空間,你在函數(shù)內(nèi)部賦值其實(shí)一點(diǎn)作用都沒有。
void fun(int *p) 傳遞的是指針,你也可以連接是拷貝傳遞,但傳遞的是指針,所以在里面對*p操作就是于直接對傳入的j的內(nèi)存空間進(jìn)行操作。
C++中可以改成 void bar(int p) 其他不用改,引用傳遞,這樣就可以修改外面?zhèn)魅氲臄?shù)據(jù)了。
無參函數(shù),是指在主調(diào)函數(shù)調(diào)用被調(diào)函數(shù)時,主調(diào)函數(shù)不向被調(diào)函數(shù)傳遞數(shù)據(jù)。無參函數(shù)一般用來執(zhí)行特定的功能,可以有返回值,也可以沒有返回值,但一般以沒有返回值居多。
有參函數(shù),是指在主調(diào)函數(shù)調(diào)用被調(diào)函數(shù)時,主調(diào)函數(shù)通過參數(shù)向被調(diào)函數(shù)傳遞數(shù)據(jù)。在一般情況下,有參函數(shù)在執(zhí)行被調(diào)函數(shù)時會得到一個值并返回給主調(diào)函數(shù)使用。
擴(kuò)展資料
1、定義有參函數(shù)的一般形式為:
函數(shù)類型 函數(shù)名(參數(shù)類型1 參數(shù)名1, 參數(shù)類型2 參數(shù)名2, …, 參數(shù)類型n 參數(shù)名n)
{
聲明部分
語句部分
}
2、有參函數(shù)使用注意事項:
(1)在定義函數(shù)時,必須要指定形參的類型。實(shí)參與形參的個數(shù)必須相等,若不相等就是語法錯誤。此外,實(shí)參與形參的類型要相同或賦值兼容。最好是相同,這樣不容易出錯。如果不相同則實(shí)參按形參的類型轉(zhuǎn)化,然后再送給形參。
(2)在傳遞數(shù)據(jù)時,實(shí)參與形參是按順序一一對應(yīng)的。
void?another(int?*?var)
{
int?x?=?5;
*var?=?x;
}
void?myfun()
{
int?i;
another(i);?//?此處的?i?得到另一個函數(shù)中變量?x?的值。
}