當前位置:首頁 » 編程語言 » c語言指針集

c語言指針集

發布時間: 2025-05-24 12:18:03

『壹』 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語言數組指針

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科成績了

『叄』 C語言選擇題,關於指針數組。求詳解

int a[2][3]; 定義了一個二維函數,每一維數組有三個元素。
int (*pt)[3]; 定義了一個數組指針,也就是定義了一個指向有三個元素的指針,即該指針,每次自加1,地址跳過三個int
pt=a; 就是讓pt指向a[0],注意a[0]是一個數組地址,裡面有三個元素
對於A選項,pt[0][0]是正確的,pt[0][0]等價於a[0][0]
對於B選項,不正確,因為pt+1就是a[1], *(pt+1)[2]相當於a[3][0]不對。
因為運算符優先順序,[]大於*,因此*(pt+1)[2]就是*pt[1+2] 也就是*a[1+2]。而*a[3]就等價於a[3][0]。越界了
改成(*(pt+1))[2]就對了,相當於a[1][2]
對於C選項,正確,*(pt[1]+2) 相當於a[1][2]
對於D選項,正確,*(a[0]+2)相當於a[0][2]

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:593
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:888
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:582
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:765
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:684
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1013
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:255
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:114
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:806
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:713