c語言中的intp5int5怎麼理解

2021-03-03 20:34:15 字數 1846 閱讀 2990

1樓:

int (*(*p5)(int*))[5];——p5是個指標,指向乙個具有乙個int *型形參的函式,這個函式返回乙個指向具有5個int元素的陣列的指標。

c語言中int *p[5]與 int (*p)[5]的區別

2樓:姓從蓉秘素

你是不想問

int*p[

]和int

(*p)

[]的區別啊[]

的優先順序高於*

所以前者表示指標陣列,而後者是陣列指標,例如int*p[6]

表示p有6個元素,每個元素又是乙個int型指標變數。int(*p)[6]表示指向具有6個元素的一維int型陣列的陣列指標變數

3樓:衄潲

樓上說的是錯的,int *p[5],首先

它是乙個陣列,它的大小是5,它裡面存放的資料型別是int *,也就是整型指標。 所以它叫指標陣列、 (從右向左解析這個表示)

int (*p)[5],首先p是乙個指標,指向大小為5的陣列,因此這叫陣列指標。(括號優先)

這個在《c專家程式設計》裡面說的很清楚。你可以看一下。

4樓:庾詩珊趙寄

int(*p)[4];//是指向乙個2維陣列的指標int**p;//是乙個指標的指標

兩個都是指向位址的

int(*p)[4]

是接收二維陣列的位址(常量)

int**p

是接收指標變數的位址(變數)

我是這麼理解的,不知道對不。

5樓:貴華燦僧琛

你確定你輸入的語句沒有問題嗎?

int*p();//這是乙個整型指標函式,

int(*p)();//這個不能成為語句。

6樓:陳大濤

其實我們先討論乙個優先順序的問題,的優先順序高於*,這就是為什麼後者加了乙個(),int *p[5]定義乙個指標陣列p,講到底這個p是乙個陣列,陣列內的元素是5個指標,而陣列內的每乙個指標指向乙個int型的變數;int (*p)[5]定義了乙個指向5個元素的一維陣列的指標。

7樓:匿名使用者

第二個就是這個指標所指的值是乙個大小為5個int的陣列的首位址。換句話說,p+1(陣列位址+1)代表記憶體位址下移了5個單位。

8樓:匿名使用者

int *p[5]那麼p[0]是乙個int指標

int (*p)[5] 那麼p是乙個指向陣列的指標

c語言中 int*p[4] 和 int(*p)[4]的區別是什麼?

9樓:匿名使用者

int*p[4]是指標的陣列

,也就是說它

是乙個陣列,陣列裡存的是乙個個的指標

int(*p)[4]是陣列的指標,也就是說它是乙個指標,指向的是乙個陣列。指標指向的型別會影響到指標加減運算時位址的位移。比如說有乙個陣列 int a[4],加上取址運算子 &a,這個表示式的型別就是指向陣列的指標,可以這樣賦值 p = &a;。

一般用於向函式傳遞二維陣列的時候使用這種型別,這時還有一種更直觀的寫法

void matrix_sum(int matrix_a[4], int matrix_b[4])

這種寫法和

void matrix_sum(int (*matrix_a)[4], int (*matrix_b)[4])

是等價的。

10樓:望闌珊將盡

結合性不一樣:前者是指標陣列,為4個int指標的陣列,有4個元素;後者是陣列指標,為乙個指標,型別為指向包含4個int型別元素的一維陣列的指標。

C語言中5d中的5是什麼意思

那個 5 在這裡只表示是c語言中的乙個十六進製制數,1.如果是 d 的話,就是按整型資料的實際長度輸出 2.如果是 md 的話,就是說明 m 為指定的輸出欄位的寬度。如果資料的位數小於m,則左端補以空格,若大於m,則按實際倍數輸出。3.如果是 ld 的話,則輸出長整型資料。對於長整型資料來說如果用 ...

c語言若有說明intp1p2m5n以下

b,c是肯定正確的答案。關於 d,桐兒7ms籲8 解釋的很好。我一開始還犯嘀咕。d的問題是 p2是int指標,沒有初始化,也就是沒有指向任何實際的int變數地址。 桐兒7ms籲 a.p2 p1,p2不是雙指標 b,p2 n,n還沒有賦值 c,正確 d,p2 p1 原來p2還沒初始化,即沒有分配記憶體...

c語言中int222語句的結果為什麼是

c 語言中,逗號 也可以是運算子,稱為逗號運算子 comma operator 逗號運算子可以把兩個以上 包含兩個 的表示式連線成乙個表示式,稱為逗號表示式。其一般形式為 子表示式1,子表示式2,子表示式n例如 2 x,x 2 逗號運算子的優先順序是所有運算子中級別最低的,通常配合 for 迴圈使用...