#include <stdio.h>
void swap1(int a, int b)
{
int tmp;
tmp = a;
a = b;
b = tmp;
return;
}
int main()
{
int x = 1, y = 2;
swap1(x,y);
printf("%d %d",x,y);
return 0;
}
我不明白為什么沒有 Pointer 這些將無法作業,但使用 Pointer 它將正常作業。我在谷歌上搜索過它并看到了一些關于它的問題,但在閱讀所有答案后我仍然不明白。
但是這段代碼在不使用指標的情況下正常作業
#include <stdio.h>
int padovan(int n);
int main()
{
int n;
printf("Enter number : ");
scanf("%d",&n);
printf("Result : %d",padovan(n));
}
int padovan(int x)
{
if(x == 0 || x == 1 || x == 2)
return 1;
else if(x > 2)
return padovan(x-2) padovan(x-3);
}
uj5u.com熱心網友回復:
void swap1(int a, int b)
{
int tmp
tmp = a;
a = b;
b = tmp;
return;
}
你傳遞a并b通過值,這意味著,當你通過a和b,編譯器可以進行一個副本的a和b,不改變的實際值a和b
如果你想讓它作業,你必須使用一些指標:
void swap(int *a, int *b) {
int tmp;
tmp = *a; // save the value at address x
*a = *b; // put y into x
*b = tmp ; // put tmp into y
return;
}
int padovan(int x)
{
if(x == 0 || x == 1 || x == 2)
return 1;
else if(x > 2)
return padovan(x-2) padovan(x-3);
}
這段代碼沒問題。padovan()回傳一個int,你正在列印它。您沒有修改padovan().
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/349707.html
上一篇:附加在c(指標的指標)上
下一篇:結構中指標符號和點符號的混淆
