void bar(int p) 是拷貝傳遞,函數內部的p與外面?zhèn)魅氲膉只是值相同,并不是同一個內存空間,你在函數內部賦值其實一點作用都沒有。
創(chuàng)新互聯公司是專業(yè)的太湖網站建設公司,太湖接單;提供網站設計、成都網站制作,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行太湖網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
void fun(int *p) 傳遞的是指針,你也可以連接是拷貝傳遞,但傳遞的是指針,所以在里面對*p操作就是于直接對傳入的j的內存空間進行操作。
C++中可以改成 void bar(int p) 其他不用改,引用傳遞,這樣就可以修改外面?zhèn)魅氲臄祿恕?/p>
如果你非要用指針的話,可以把數組的形式改寫成指針的形式,就像一樓的
void Chg_Array(int array[], int size, int value)
{
int i;
for(i=0;isize;i++)
*(array+i)=value ;
}
n = scanf("%d",n);
這一句有問題
1. scanf 函數是有返回值的,它的返回值可以分成三種情況
1) 正整數,表示正確輸入參數的個數。
例如執(zhí)行 scanf(“%d %d”, a, b);
如果用戶輸入”3 4”,可以正確輸入,返回2(正確輸入了兩個變量);
如果用戶輸入”3,4”,可以正確輸入a,無法輸入b,返回1(正確輸入了一個變量)。
2) 0,表示用戶的輸入不匹配,無法正確輸入任何值。如上例,用戶如果輸入”,3 4”,返回0。
3) EOF,這是在 stdio.h 里面定義的常量(通常值為-1),表示輸入流已經結束。在Windows下,用戶按下CTRL+Z(會看到一個^Z字符)再按下回車(可能需要重復2次),就表示輸入結束;Linux/Unix下使用CTRL+D表示輸入結束。
你這個輸入一個返回值就是1,因此n也會一直等于一
可以。scanf可以以分數賦值,scanf是C語言中的一個輸入函數,使用scanf函數時要加上輸入算式,按用戶指定的格式從鍵盤上把數據輸入到指定的變量之中。