當前位置:首頁 » 編程語言 » c語言數組的指針

c語言數組的指針

發布時間: 2023-07-05 20:38:55

c語言指針指向數組的問題。

首先你要明白一點,數組名和指針本質上是一回事,都是地址,該數組的首地址。知道這一點後就可以活學活用了。這是c語言的精髓。
比如你定義了int
*p,a[10];並且讓p=a;,
這個操作叫做指針p指向了數組a,其本質是給p這個變數付了一個值,就是數組a的地址,也是a[0]的地址,也是a本身裡面存儲的內容。
那麼要引用a[i],你可以有很多種寫法,比如*(a+i),
*(p+i),
p[i],都是等效的。
p++的含義其實不是p=p+1,至少有時不是,p++的操作其實是讓p指向下一個元素,也就是原來p指向的是a[0],那麼現在p指向a[1]了。由於a是int類型,站4個位元組,那麼p++這個操作其實是讓p的內容增加了4。不要問為什麼,c語言就是這么規定的。如果p指向的是一個char類型,那麼p++就使p的值增加1。

② C語言中:數組指針與指針數組有什麼區別

數組指針是指向這個數組首地址的指針,指向對象是這個數組;
指針數組是存放一類指針的數組,這個數組的每個元素都是一個指針;
例子:
int
a[10];
int*
s;
s
=
a;//這里s就是一個數組指針,它的值就是數組a
的首地址;當然,如果a是一個整數,那s就是一個指向整型的指針;
int
a;
int*
s[5];
for(int
i=0;i<5;i++)s[i]=a;
//這里s就是一個指針數組,它的每個元素都是整型變數a的地址

③ c語言指針,指向數組的指針、指向指針數組的指針、指向數組的指針的指針,分別如何定義

解答:
1. 如何聲明一個指針,這個指針是指向整個數組的,數組有n個元素,每個元素是int,不是int (*p)[n],而是最簡單的int*p;
2. 如何聲明一個指針,這個指針也是指向數組的,數組有n個元素,每個元素不是int,而是指針int*;這個指針是int**p;
3. 又如何聲明一個指針,它指向另一個指針,這「另一個指針」指向一個數組,數組元素是int;這個指針仍然是int**p。

④ C語言中指針和數組是怎樣相互轉換的

指針數組,就是一個數組里存放的都是指針,比如*p[8];p[0]里存放的就是一個指針數據
數組指針,數組名就是一個指向數組起始地址的指針,數組下標是縈引,比如num[0],他就相當於num+0;
num這個指針沒移動,於是取的是數組的第一個。num[1]相當於數組指針移1,於是指向數組第二個

⑤ C語言中 數組指針的意義

你說的是指向數組的指針如int(*)[]?
指向數組的指針有一種非常常見的用法,就是令其指向二維數組的某一行。如二維數組a[3][4],它的本質是一維數組的數組,即a本質上是一個3個元素的數組,其中的每個元素都是一個int[4]數組。要想使用一個指針p指向其中的某個元素,就必須將p定義為數組指針int (*p)[4],它指向一個int[4]數組。然後,才可以令p指向a:p=a。

⑥ C語言數組指針

int (*pstu)[4];為指向有4個元素的數組的指針

int* getPosPerson(int pos, int (*pstu)[4]);為返回值為指針的函數

注意這是指針函數,而不是函數指針,後者為指向函數的指針變數,兩者含義是不同的

(類似指針數組和數組指針,兩者含義也是不同的,一個本質是數組,一個本質是指針)

調用該函數的語句為:ppos =getPosPerson(pos,scores);

傳入的scores表示3行4列的二維數組首行數組的地址,即&scores[0]

調用後相當於int (*pstu)[4]=scores,所以在getPosPerson中pstu與scores是等價的

即pstu可看作&scores[0],那麼pstu+pos也就等價於scores+pos,等價於&scores[pos]

即返回了指向&scores[pos](也就是scores第pos+1行的地址)的指針

返回該行指針ppos後,就可以查看該行表示的學生的4科成績了

熱點內容
傳奇編譯完整部署教程 發布:2025-02-09 12:03:39 瀏覽:830
vivo手機微信聊天記錄在哪個文件夾 發布:2025-02-09 11:55:24 瀏覽:839
數控內孔循環編程實例 發布:2025-02-09 11:51:41 瀏覽:762
工作站玩游戲買什麼配置的電腦 發布:2025-02-09 11:49:34 瀏覽:773
奶塊透視腳本群 發布:2025-02-09 11:44:18 瀏覽:544
敢死連狙擊手之無名高地ftp 發布:2025-02-09 11:27:21 瀏覽:584
lol天使輔助腳本 發布:2025-02-09 11:24:39 瀏覽:140
溯源碼怎麼生成 發布:2025-02-09 11:15:15 瀏覽:443
android70flash 發布:2025-02-09 11:15:06 瀏覽:726
如何查看伺服器拒絕信息 發布:2025-02-09 11:13:07 瀏覽:947