0
void f(int pv1, int *pv2, int *pv3, int pv4[]){
int lv = pv1+ *pv2 + *pv3 + pv4[0];
pv1= 11;
*pv2= 22;
*pv3= 33;
pv4[0]= lv;
pv4[1]=44;
}
int main(void){
int lv1=1, lv2=2;
int *lv3;
int lv4[]= {4,5,6};
lv3= lv4+2;
f(lv1, &lv2, lv3 , lv4);
printf("%i,%i,%i\n", lv1, lv2, *lv3);
printf("%i,%i,%i\n", lv4[0], lv4[1], lv4[2]);
return 0;
}
答:1月22日33C參數傳遞和指針
我不明白怎麼。
我的工作: LV1 = 1,LV2 = 2,LV3 = LV4 + 2 = 6,LV4 [] = {4,5,6}
至f去()之後, Lv1的= 11 ,lv2 = 22,lv3 = 33,lv4 [0] = 13和lv4 [1] = 44
'pv1 = 11;'不影響'lv1'。 – BLUEPIXY
請添加一些說明你想做什麼以便可以檢查錯誤 –
可能的重複[如何修改已傳遞到C函數中的指針](http://stackoverflow.com/questions/766893/how-do-i-modify-a-pointer-that-has-been-passed-into-a-function-in-c) – StoryTeller