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型別元素的一維陣列的指標。 temp 是自己定義的。常常定義為起臨時作用的變數。比如有a,b兩個變數,現在交換他們的值,就再定義個temptemp a a bb temp 這樣就實現了交換兩個值。 一般只是用來定義區域性變數的,由於臨時使用,所以名字取的有點隨意. 天雲一號 在c語言中,temp沒有特別的含義,既不是關鍵字也不... 這表示的是字元陣列,128是字元陣列長 不是字串長 char str 456 也是可以的。其中每個成員的值在 128 127之間,str 0 str 455 每個值不能超過127.如果超過,則擷取低位位元組存貯。題目裡是統計輸入字串中小寫英文字母個數,開頭用的就是這個。這個就好理解了。ascii 就... 因為編譯時候沒法知道其是什麼型別的數,所以可以稍微改一下,在3和2後面加一個小數點 include main l語言之父 因為3預設的是int型的常量,所以3 2的輸出結果為了與被除數一致就輸出0 0.5進行int型別轉換後就變成了0 這裡需要注意的就是c語言除法中,結果的資料型別是會轉換成被除數的...c語言中temp是什麼,C語言中temp是什麼
c語言中char str括號裡為什麼是
在c語言中3 2為什麼等於,在c語言中3 2為什麼等於0