數(shù)組只能通過指針傳遞,不能通過值傳遞。
十年的石獅網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整石獅建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“石獅網(wǎng)站設(shè)計(jì)”,“石獅網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
數(shù)組參數(shù)屬于指針參數(shù),指針參數(shù)即時(shí)傳址參數(shù)(或叫引用參數(shù)), 如果想在函數(shù)中修改參數(shù)的值, 這是唯一的途徑.
如果把數(shù)組當(dāng)作參數(shù), 不管愿意與否, 它就是指針, 指向第一個(gè)值的指針.
1. 數(shù)組參數(shù)就是指向第一個(gè)元素的指針: #include stdio.h
void getArr(int p[], int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
getArr(ns, sizeof(ns)/sizeof(ns[0]));
getchar();
return 0;
}
void getArr(int p[], int si) {
int i;
for (i = 0; i si; i++) {
printf("%d\n", p[i]);
}
}
2. 干脆直接聲明為指針: #include stdio.h
void getArr(int *p, int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
getArr(ns, sizeof(ns)/sizeof(ns[0]));
getchar();
return 0;
}
void getArr(int *p, int si) {
int i;
for (i = 0; i si; i++) {
printf("%d\n", p[i]);
}
}
3. 即使你在形參中指定維數(shù)也不起作用: #include stdio.h
void getArr(int p[2], int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
getArr(ns, sizeof(ns)/sizeof(ns[0]));
getchar();
return 0;
}
void getArr(int p[2], int si) {
int i;
for (i = 0; i si; i++) {
printf("%d\n", p[i]);
}
}
4. 既然是指針, 其值就有被修改的可能: #include stdio.h
void getArr(int p[], int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
size_t i;
getArr(ns, sizeof(ns)/sizeof(ns[0]));
for (i = 0; i sizeof(ns)/sizeof(ns[0]); i++) {
printf("%d\n", *(ns+i));
}
getchar();
return 0;
}
void getArr(int p[], int si) {
int i;
for (i = 0; i si; i++) {
p[i]++;
}
}
5. 如果是字符數(shù)組, 它自己能判斷數(shù)組尾界: #include stdio.h
void getArr(char p[]);
int main(void)
{
char ns[] = "ABCDEFG";
getArr(ns);
getchar();
return 0;
}
void getArr(char p[]) {
int i;
for (i = 0; p[i]; i++) {
printf("%c: %d\n", p[i], p[i]);
}
}
c語(yǔ)言中、數(shù)組在函數(shù)中的傳遞可以數(shù)組元素的傳遞!還有就是數(shù)組名的傳遞!其實(shí)、數(shù)組名的傳遞類似指針!就是把數(shù)組的元素的首地址傳到形參的!
一維數(shù)組的元素作為函數(shù)實(shí)參,與同類型的簡(jiǎn)單變量作為實(shí)參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實(shí)參
數(shù)組名代表著整個(gè)數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實(shí)參,傳遞的是整個(gè)數(shù)組,即形參數(shù)組和實(shí)參數(shù)組完全相同,是存放在同一存儲(chǔ)空間的同一個(gè)數(shù)組。這樣形參數(shù)組
修改時(shí),實(shí)參數(shù)組也同時(shí)被修改了。形參數(shù)組的元素個(gè)數(shù)可以省略。
#includestdio.h
//數(shù)組作為函數(shù)參數(shù),可以省略元素個(gè)數(shù)
//數(shù)組作為函數(shù)參數(shù),傳遞是整個(gè)數(shù)組的地址,修改了函數(shù)形參數(shù)組元素的值,會(huì)影響到外面的實(shí)參數(shù)組
void change(int array[])
{
printf("array ==%p\n",array);
array[0] = 100;
}
int main()
{
int ages[6] = {10,11,13,15,11,18};
printf("array ==%p\n",ages);
change(ages);
printf("%d\n",ages[0]);
return 0;
}
輸出結(jié)果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100
使用pointer(指針)即可.
ex:
void?func(int?*ptr,?int?len);
int?array[10];
test()
{
....
func(array[0],?10);?//?將第一個(gè)指針傳過去,?并帶上長(zhǎng)度
....
}
例:
#includestdio.h
void?fact(int?*p,?int?n)
{
for(i?=?0;?i??n;?++i)
{
printf("%d?",?p?+?i);
}
printf("\n");
p[3]?=?6;
}
int?main()
{
int?a[5]?=?{1,?2,?3,?4,?5};
fact(a,?5);
for(i?=?0;?i??5;?++i)
{
printf("%d?",?a[i]);
}
printf("\n");
return?0;
}
本文名稱:網(wǎng)關(guān)程序用go語(yǔ)言,網(wǎng)關(guān)程序用go語(yǔ)言怎么設(shè)置
鏈接分享:http://chinadenli.net/article22/hdojcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、定制網(wǎng)站、搜索引擎優(yōu)化、全網(wǎng)營(yíng)銷推廣、云服務(wù)器、域名注冊(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í)需注明來源: 創(chuàng)新互聯(lián)