#includestdio.h

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括道縣網(wǎng)站建設(shè)、道縣網(wǎng)站制作、道縣網(wǎng)頁(yè)制作以及道縣網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,道縣網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到道縣省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
void Input(int *a,int n)
{int i;
for(i=0;in;i++)
scanf("%d",a+i);
}
int Max(int *a,int n)
{int i,max=*a;
for(i=1;in;i++)
if(*(a+i)max)max=*(a+i);
return max;
}
int Min(int *a,int n)
{int i,min=*a;
for(i=1;in;i++)
if(*(a+i)min)min=*(a+i);
return min;
}
float Avg(int *a,int n)
{int i,s=0;
for(i=0;in;i++)
s+=*(a+i);
return (float)s/n;
}
int main()
{ int a[10];
Input(a,10);
printf("最低分=%d\n",Min(a,10));
printf("最高分=%d\n",Max(a,10));
printf("平均分=%.1f\n",Avg(a,10));
return 0;
}
你的2個(gè)程序是不同的。關(guān)鍵知識(shí)是: 普通指針 和 數(shù)組指針 的 不同點(diǎn)。
下面是簡(jiǎn)單的說(shuō)明。
int *p; 是普通的指針,指向一個(gè)地址。
p=a; 讓它指向2維數(shù)組的始地址。由于數(shù)組是按行排列,所以下標(biāo)[i,j] 的 元素 a[i][j] 排在 i*4+j 位,即: p[i*4+j]
printf("a[%d][%d]=%d\n",i,j, (p[i*4+j])); // 就是 輸出 a[i][j]。
=========
int (*p)[4]; 這是數(shù)組指針,用于指向4個(gè)元素一行的數(shù)組。
p= a[0]; 讓 它指向 數(shù)組 的開(kāi)始地址。
程序中可以用 p[i][j] 代替 a[i][j] 使用。
printf("a[%d][%d]=%d\n",i,j, p[i][j]); // 就是 輸出 a[i][j]。
*加地址變量是取這個(gè)地址里的值
數(shù)組的p[]就是這個(gè)數(shù)組p的第一個(gè)地址(也就是這個(gè)數(shù)組的地址),C語(yǔ)言自己會(huì)把a(bǔ)當(dāng)做a[]
所以你傳到函數(shù)里的*p指針就是a數(shù)組的首地址,即a,我一般寫程序?yàn)榱藚^(qū)分常寫作a[],
而讀上了這個(gè)數(shù)組的首地址以后*(p+i)就是取這個(gè)數(shù)組的首地址后的i個(gè)地址內(nèi)的數(shù)據(jù),而開(kāi)的數(shù)組的地址是連續(xù)的,所以可以輸出你數(shù)組里的數(shù)據(jù),而最后輸出的p[i]的操作方式是輸出p數(shù)組的第i個(gè)數(shù),說(shuō)白了就是兩種取數(shù)組里值的方法而已
子函數(shù)中定義的一般指針變量,在子函數(shù)結(jié)束之后會(huì)被自動(dòng)釋放,如果返回這種局部指針變量,調(diào)用者一般是不能正確讀到指針地址中的數(shù)據(jù)的。
因此,如果想在主函數(shù)中輸出自定義函數(shù)中定義的數(shù)組,就要在自定義函數(shù)中把數(shù)組定義為靜態(tài)數(shù)組,然后返回?cái)?shù)組名即可。
靜態(tài)變量的生命周期是整個(gè)程序的生命期,從定義開(kāi)始,直到程序結(jié)束,才會(huì)被釋放。
參考代碼:
#include?stdio.h
char?*get_str(void)?//返回值類型為字符指針
{
static?char?str[100]={0};//靜態(tài)變量初始化,只有在定義時(shí)這次完成,且初始化只執(zhí)行一次。
sprintf(str,"hello?world");
return?str?;
}
void?main()
{
char?*p;
p=get_str();
printf("%s\n",?p?);
}
#includestdio.h
int?main()
{
int?array[10];
int?i,?*p;
for(p=array,?i=0;?i10;?i++)
scanf("%d",?p+i);
for(p=array,?i=0;?i10;?i++)
printf("%d?",?*(p+i));
return?0;
}
新聞名稱:c語(yǔ)言函數(shù)與一維數(shù)組指針,c語(yǔ)言指向一維數(shù)組的指針
地址分享:http://chinadenli.net/article49/dsisehh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、品牌網(wǎng)站設(shè)計(jì)、用戶體驗(yàn)、App開(kāi)發(fā)、標(biāo)簽優(yōu)化、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)