C 指針初步認(rèn)識(shí)(二)

數(shù)組指針

一個(gè)變量有一個(gè)地址遍愿,一個(gè)數(shù)組包含若干元素,每個(gè)數(shù)組元素都在內(nèi)存中占用存儲(chǔ)單元耘斩,它們都有相應(yīng)的地址沼填。
所謂數(shù)組的指針是指數(shù)組的起始地址,數(shù)組元素的指針是數(shù)組元素的地址括授。

定義一個(gè)指向數(shù)組元素的指針變量

int a[10];  //定義a為包含10個(gè)整型數(shù)據(jù)的數(shù)組
int *p;  //定義p為指向整型變量的指針
p=&a[0] //應(yīng)當(dāng)注意坞笙,因?yàn)閿?shù)組為int型,所以指針變量也應(yīng)為指向int型的指針變量荚虚。

把a(bǔ)[0]元素的地址賦給指針變量p薛夜。也就是說,p指向a數(shù)組的第0個(gè)元素版述。

1.png

C語言規(guī)定梯澜,數(shù)組名代表數(shù)組的首地址,也就是第0號(hào)元素的地址院水。

int a[10];
int *p;
// 第一種方式
p=&a[0];
p=a;

// 第二種方式
int *p=&a[0];

//這兩種方式是等價(jià)的

指針引用數(shù)組如果指針變量p已指向數(shù)組中的一個(gè)元素腊徙,
p+1指向同一數(shù)組中的下一個(gè)元素简十。
p-1指向同一數(shù)組中的前一個(gè)元素檬某。

p = &a[0] // 指針p 指向數(shù)組首地址

//p+i  就是 a[i] 的地址,或者說它們指向a數(shù)組的第 i 個(gè)元素螟蝙。
[/i]p+5 // 現(xiàn)在p往后移動(dòng)5個(gè)元素恢恼,現(xiàn)在指向 a[5]的地址

// *(p+i)  就是 p+i  所指向的數(shù)組 a元素(的內(nèi)容)
*(p+5) // 就是a[5]的內(nèi)容

輸出數(shù)組

//使用下標(biāo)方法
#include <stdio.h>
int main(){
    int a[10], i;
    // 賦值
    for(i=0; i<10; i++)
        a=i;
    //打印     
    for(i=0;i<10;i++)
        printf("a[%d]=%d\n", i, a);
    return 0;
}
//使用計(jì)算元素的地址方法
#include <stdio.h>
int main(){
    int a[10], i;
    //賦值
    for(i=0; i<10; i++)
        *(a+i) = i;
        
    //打印
    for(i=0; i<10; i++)
        printf("a[%d]=%d\n", i, *(a+i));
    return 0;
}
//指針變量指向元素方法
#include <stdio.h>
int main(){
    int a[10], i, *p;
    p = a;
    //賦值
    for(i=0; i<10; i++)
        *(p+i) = i;
        
    //打印
    for(i=0; i<10; i++)
        printf("a[%d]=%d\n", i, *(p+i));
    return 0;
}

例子
判別一個(gè)整數(shù)數(shù)組中各元素的值,若大于0 則輸出該值胰默,若小于等于0則輸出0值场斑。

#include <stdio.h>

void nzp(int *a){
    int i;
    for(i=0; i<5; i++){
        if(a[i]<0) a[i]=0;  //小于0的元素漓踢,賦值為0
    }
}

int main(){
    int b[5], i;
    printf("Input 5 numbers:\n");
    for(i=0; i<5; i++)
        scanf("%d", &b[i]);
    printf("Initial values of array b are: ");
    for(i=0; i<5; i++)
        printf("%d ", b[i]);
    nzp(b);
    printf("\nFinal values of array b are: ");
    for(i=0; i<5; i++)
        printf("%d ",b[i]);

    return 0;
}

運(yùn)行結(jié)果:

Input 5 numbers:
1↙
3↙
-90↙
-23↙
100↙
Initial values of array b are: 1 3 -90 -23 100
Final values of array b are: 1 3 0 0 100

說明:

  1. 形參數(shù)組 和 實(shí)參數(shù)組類型必須一致
  2. 形參數(shù)組和實(shí)參數(shù)組的長度可以不同, 一般定義方法原型的參數(shù)漏隐,可以允許不給出數(shù)組長度喧半。如寫成 void nzp(int a[]), 當(dāng)然也可以 void nzp(int *a)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末青责,一起剝皮案震驚了整個(gè)濱河市挺据,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌脖隶,老刑警劉巖扁耐,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異产阱,居然都是意外死亡婉称,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門构蹬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來王暗,“玉大人,你說我怎么就攤上這事庄敛√笨穑” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵铐姚,是天一觀的道長策肝。 經(jīng)常有香客問我,道長隐绵,這世上最難降的妖魔是什么之众? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮依许,結(jié)果婚禮上棺禾,老公的妹妹穿的比我還像新娘。我一直安慰自己峭跳,他們只是感情好膘婶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛀醉,像睡著了一般悬襟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拯刁,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天脊岳,我揣著相機(jī)與錄音,去河邊找鬼。 笑死割捅,一個(gè)胖子當(dāng)著我的面吹牛奶躯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亿驾,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嘹黔,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了莫瞬?” 一聲冷哼從身側(cè)響起参淹,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乏悄,沒想到半個(gè)月后浙值,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡檩小,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年开呐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片规求。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡筐付,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出阻肿,到底是詐尸還是另有隱情瓦戚,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布丛塌,位于F島的核電站较解,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏赴邻。R本人自食惡果不足惜印衔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姥敛。 院中可真熱鬧奸焙,春花似錦、人聲如沸彤敛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墨榄。三九已至玄糟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渠概,已是汗流浹背茶凳。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國打工嫂拴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留播揪,地道東北人贮喧。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像猪狈,于是被迫代替她去往敵國和親箱沦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型雇庙。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一谓形。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,446評(píng)論 3 44
  • 指針 指針是什么 為了了解指針的概念疆前,我們先來看一個(gè)小故事寒跳。話說福爾摩斯派華生到威爾爵士居住的城堡去取回一個(gè)重要的...
    去留無意hmy閱讀 557評(píng)論 0 1
  • C語言指針的總結(jié) 1. 變量 不同類型的變量在內(nèi)存中占據(jù)不同的字節(jié)空間。 內(nèi)存中存儲(chǔ)數(shù)據(jù)的最小基本單位是字節(jié)竹椒,每一...
    xx_cc閱讀 3,751評(píng)論 11 39
  • 那日胸完,晨光熹微 相處的默契书释,逃不過分離 沒有再見,沒有道別 沒有聯(lián)系方式 甚至赊窥,忘了你的名字 唯在戚戚的風(fēng)里爆惧,就著...
    南山公子閱讀 242評(píng)論 4 8
  • 歷年來,天痕家族的后輩在圣靈學(xué)院能進(jìn)天才班的锨能,也就寥寥幾十人而已扯再。雖然進(jìn)不了天才班,并不代表沒有培養(yǎng)的價(jià)值了址遇,但進(jìn)...
    im喵小姐閱讀 441評(píng)論 0 0