真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言數(shù)組函數(shù)的地址 C語言函數(shù)地址

關(guān)于C語言數(shù)組的地址

數(shù)組名就是數(shù)組的首地址啊。

成都創(chuàng)新互聯(lián)服務(wù)項目包括張掖網(wǎng)站建設(shè)、張掖網(wǎng)站制作、張掖網(wǎng)頁制作以及張掖網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,張掖網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到張掖省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

直接使用swaps(a,b)就可以

不過其實你子函數(shù)就寫錯了,根本就不是你所說的用數(shù)組地址做形參。而是要求用一個 二維數(shù)組或者是指針數(shù)組作為實參。

正確的代碼如下

#includestring.h

#includestdio.h

char?d[100];

void?swaps(char?*p,char?*q)

{

if(strcmp(p,q)0)

{

strcpy(d,p);

strcpy(p,q);

strcpy(q,d);

}

}

int?main()

{

char?a[]="",b[]="",c[]="";

printf("請輸入三個字符串,每輸入一個字符串按回車確認\n");

gets(a);

gets(b);

gets(c);

swaps(a,b);

return?0;

}

void?swaps(char?*p,char?*q)就是要求傳一個地址(指針),而如果你使用

void?swaps(char?*p[],char?*q[])則意義就不對了,而是要求一個指針數(shù)組

C語言數(shù)組的地址

其實你這個疑問是概念上的混淆,或者說對指針了解上上的欠缺

首先講int a[3] = {2,3,4};

這里的a是這個數(shù)組的首地址,比如定義如:int *p = a;這時如果你進行如下操作:

p++;

printf("%d\n",*p);

結(jié)果會是輸出2,也就是說p+1相當于數(shù)組索引加1,但是像你所問的為什么a和a是相同的 ,首先要知道他們分別代表什么意思,a:像上面所說的是數(shù)組的首地址,做自加運算會根據(jù)數(shù)組類型來計算偏移量,那么a是什么東西呢,實際上它也是一個指針,是指向一個具有3個元素的數(shù)組的指針,如何理解,看以下定義:

如果你定義int *q = a;這時編譯器肯定報錯,繪制出數(shù)據(jù)類型不一致,那么你這樣樣定義就沒有問題:int (*q)[3] = a;這時如果你再對q進行++操作,那么加的就不同了,如相面的p++操作后p的值會加4,而這里q++操作后的值會加12,也就是跳過3個數(shù)組元素,然而,確實這兩個指針的初始值是一樣的,只是類型不一樣而已,這對二維數(shù)組的訪問時很方便的,這個你可以參照2維數(shù)組得到進一步理解,講的有點亂,不知道你能不能理解

C語言中數(shù)組地址的表示方法

數(shù)組地址:比如說uint a[10]

那么他的地址可以表示為:a,a[0]兩種表示方式,但他們+1時的直是不同的


標題名稱:c語言數(shù)組函數(shù)的地址 C語言函數(shù)地址
文章出自:http://weahome.cn/article/dooocci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部