關(guān)于數(shù)組的問題,自定義getindex函數(shù)中參數(shù)1為arr[5],為什么下面調(diào)用的時候參數(shù)是arr?我覺得應(yīng)該是arr[];
#include <stdio.h>
int getIndex(int arr[5],int value)
{
? ? int i;
? ? int index;
? ? for(i=0;i<5;i++)
? ? {
? ? ? ?/* 請完善數(shù)組查詢功能 */
? ? ? ?if(arr[i]==value)
? ? ? ?{
? ? ? ? ? index=i;
? ? ? ? ? break;
? ? ? ?} ??
? ? ? ?else
? ? ? ? ? index=-1;
? ? }
? ? return index;
}
int main()
{
? ? int arr[5]={3,12,9,8,6};
? ? int value = 8;
? ? int index = getIndex(arr , value); ? ? ?//這里應(yīng)該傳什么參數(shù)呢?
? ? if(index!=-1)
? ? {
? ? ? ? printf("%d在數(shù)組中存在,下標為:%d\n",value,index); ? ? ? ? ? ??
? ? }
? ? else
? ? {
? ? ? ? printf("%d在數(shù)組中不存在。\n",value); ? ?
? ? }
? ? return 0; ? ?
}
2016-11-25
? ? ? ?1當把 數(shù)組名 傳遞給一個函數(shù)時,實際上傳遞的事該數(shù)組第一個元素的地址。2在被調(diào)用函數(shù)中,該參數(shù)是一個局部變量,因此,數(shù)組名參數(shù)必須是一個 指針 ,也就是一個存儲地址的變量。(也就是被調(diào)用函數(shù)參數(shù)必須是指針才能在主函數(shù)數(shù)組成員中移動)
? ? ? 數(shù)組名所代表的就是就是該數(shù)組最開始的一個元素的地址。arr對應(yīng)的就arr數(shù)組首地址。
? ? ? 數(shù)組類型的變量或表達式是該數(shù)組第0個元素的地址,例如:?
p=&a[0]和p=a是等價的,(p是指針,a是數(shù)組)
? ? ?在被調(diào)用函數(shù)中(getlndex)形式參數(shù)中 int arr[]和int *arr是等價的
? ? ?在調(diào)用函數(shù)(main)中,由于傳遞參數(shù)是指針,對應(yīng)主函數(shù)傳遞參量也是指針如;arr,arr+0(指針有移動0位),&arr[0],是正確的,而arr[],arr[5]都是錯的
? ? ?但數(shù)組名和指針的一個區(qū)別是指針是變量,數(shù)組不是變量。p=a和p++是合法的,但a=p和a++是不合法的
2016-11-23
恩恩,數(shù)組不應(yīng)該是arr[]這樣嗎,arr什么鬼可以這樣用啊,,