C語言中int pp 5為什麼是不合法的

時間 2021-08-14 06:08:21

1樓:匿名使用者

注意變數和數值的區別

int *p;

p=(int *)malloc(sizeof(int));

*p=5;

或者int *p,a;

p=&a;

*p=5;

p是一個指標,指向一個記憶體地址,你不指明p指向的位置,程式怎麼會知道你要給哪塊記憶體賦值呢?你可以申請一塊堆空間給p,或者直接定義一個變數,讓p指向該變數

2樓:伊·梵

int *p;

*p=5;/* 這時候p還沒有初始化呢,*p=5;可能導致系統崩潰,所以編譯器都要求先給指標賦值,然後再給指標的物件賦值*/

int a;

int *p=&a;/* 定義指標並初始化 */*p=5;/* 給指標物件賦值,相當於a=5; */

3樓:匿名使用者

p只是指標,沒有指向儲存空間,就是說根本沒有地方來放5這個值。

應該int i,*p;p=&i;*p=5;或者

int *p;p=malloc(sizeof(int));*p=5;

4樓:

指標必須有指向的物件,比如上面改為:int a,*p=&a;就ok了!!

5樓:匿名使用者

指標變數的賦值不對

……int a=4;

int *p;

p=&a;……

6樓:醉舞弄清影

p為指標,沒有宣告指向,不能直接賦值

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

7樓:姓從蓉祕素

你是不想問

int*p[

]和int

(*p)

[]的區別啊[]

的優先順序高於*

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

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

8樓:衄潲

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

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

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

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

9樓:庾詩珊趙寄

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

兩個都是指向地址的

int(*p)[4]

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

int**p

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

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

10樓:貴華燦僧琛

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

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

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

11樓:陳大濤

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

12樓:匿名使用者

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

13樓:匿名使用者

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

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

c語言中的int(*(*p5)(int*))[5];怎麼理解?

14樓:

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

c語言中*p=5 p=5有什麼不同哦

15樓:強哥

*p=5中的*p表示p為一個指標變數,即給指標變數賦值5,指標變數是指存放地址的回變數;而p=5中的p為一不同變答量,給變數p賦值為5。

一般變數存放的是資料本身,而指標變數存放的是資料的地址。

*p=5中的*只在說明為一指標變數,而p為指標變數名,指標變數中只能存放地址,即這個5為地址5

p=5中的p只為一變數,這樣一來該變數的值為5。

呵呵,不知道清楚沒!希望對你有所幫助

16樓:匿名使用者

10];

cout<<"請輸入陣列a:"<>a[i];

cout<<"請輸入數x:"<>x;

for(int i=0;i<10;i++)if(x==a[i]) a[i]=0;

for(int i=0;i<10;i++)cout<

int b[10],a[10];

int j(0);

void fun()

}void main()

cout<

i=b;}}

17樓:匿名使用者

*p是讀取指標p指向的地址的數值

p是指向的地址

18樓:匿名使用者

p=5就是把數字5賦值到p

*p=5中的*p表示p為一個指標變數,即給指標變數賦值5,指標變數是指存放地址的變數

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

19樓:匿名使用者

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])

是等價的。

20樓:望闌珊將盡

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

c語言中清屏函式是什麼,C語言中清屏函式是什麼?

莊生曉夢 c語言中清屏函式是為清除螢幕上的輸出功能,用法是 void clrscr void 程式例 include int main int i clrscr for i 0 i 20 i cprintf d r n i cprintf r npress any key to clear scre...

c語言中!10的值為0,為什麼,c語言中a 1 0 的值是什麼

ch陳先生 計算機記憶體儲存的時候認為規定了,只有0,沒有 0。c語言是一門程序導向的 抽象化的通用程式設計語言,廣泛應用於底層開發。c語言之所以命名為c,是因為c語言源自kenthompson發明的b語言,而b語言則源自bcpl語言。1967年,劍橋大學的martinrichards對cpl語言進...

在c語言中起什麼作用,C語言中的 是個什麼意思啊 有什麼用啊

模數運算子 計算第二個運算元除第一個運算元後的餘數。所有數值型別都具有預定義的模數運算子。希望對你有幫助 求餘數用的 比如10 3 結果為1 10 2 結果為0 我來總結的說一下吧 1.用來整數求餘 如4 3 1 2.放在特定小寫字母前用來控制輸入或輸出格式常用的有 d 整形 f 實數 c 字元 s...