回覆列表
-
1 # 每日搞笑內涵
-
2 # lanfengz3
不用萬分感謝,只要十分感謝即可。
對於函式:int* find(int a[], int value),其中a為整型陣列首地址,value是被檢驗值。我們可以利用指標a間接引用陣列第一個元素的值,並將其與value比較,比較完後,將指標向後移動,再透過間接引用的方式比較下一個元素值,依次下去,直到在整型陣列中找到被檢驗值或者整型陣列所有元素比較結束為止。
那麼這裡有個問題,我們如何透過指標知到整型陣列什麼時候結束呢?對於整型陣列而言,沒有辦法,所以我們必須先知道整型陣列的長度,可以在引數中給出,也可以在主函式定義中知曉。
程式如下:
int* find(int a[], int value)
{
int i=0,*p=a;
for(i=0;i
{
if(*p==value)
return p;
else
p++;
}
if(i>=10)
return 0;
}
main()
{
int c[10]={1,2,3,4,5,6,7,8,9,0};
int n;
scanf("%d",&n);
printf("%x %d",find(c,n),*(find(c,n)));/*第一個為函式返回地址,第二個為函式返回地址裡的值*/
getch();
}
另外,我們測試一個程式或者函式是否正確不在於其能否正確執行,而在於其執行的結果是否符合我們的預期。針對上述程式,測試方法如下:
輸入任意一個數,如果這個數在陣列C內,看是否能夠打印出16進位制的地址數和與輸入值相同的數;如果不在陣列C內,看是否返回值為0的地址。
不用萬分感謝,只要十分感謝即可。 對於函式:int* find(int a[], int value),其中a為整型陣列首地址,value是被檢驗值。我們可以利用指標a間接引用陣列第一個元素的值,並將其與value比較,比較完後,將指標向後移動,再透過間接引用的方式比較下一個元素值,依次下去,直到在整型陣列中找到被檢驗值或者整型陣列所有元素比較結束為止。 那麼這裡有個問題,我們如何透過指標知到整型陣列什麼時候結束呢?對於整型陣列而言,沒有辦法,所以我們必須先知道整型陣列的長度,可以在引數中給出,也可以在主函式定義中知曉。 程式如下:int* find(int a[], int value){ int i=0,*p=a; for(i=0;i=10) return 0;}main(){ int c[10]={1,2,3,4,5,6,7,8,9,0}; int n; scanf("%d",&n); printf("%x %d",find(c,n),*(find(c,n)));/*第一個為函式返回地址,第二個為函式返回地址裡的值*/ getch();} 另外,我們測試一個程式或者函式是否正確不在於其能否正確執行,而在於其執行的結果是否符合我們的預期。針對上述程式,測試方法如下: 輸入任意一個數,如果這個數在陣列C內,看是否能夠打印出16進位制的地址數和與輸入值相同的數;如果不在陣列C內,看是否返回值為0的地址。