1樓:匿名使用者
這兩種寫法的功能沒有區別。
這個程式出錯是因為你沒有為p分配空間,所以5就無處可放,所以出錯:
#include
#include
int main()
------------------------------------------
附:網友「loveqzl」的說法是不正確的,這兩種寫法的作用是一樣的,只不過第一種用法會使程式設計師產生一種錯覺,錯誤地認為int*是一種資料型別,這種認識就會使其寫出類似「int* a,b」這樣的指標定義語句,但是這樣做,b就不是乙個指標,而是乙個int變數
******************************************
80407003
2樓:月夜儛
這兩種定義方法是一樣的吧
printf("%d\n\n",*p)應該是printf("%d\n\n",&p);
3樓:匿名使用者
樓上的說的很好,建議大家養成int *p,*q這種習慣,如果int*連寫的話,容易犯int* p,q這樣的錯誤.
4樓:匿名使用者
沒有區別
int* p 是c++寫法
int *p 是c寫法
int *p;
只是乙個指標 你沒有用他指向任何位址的時候不能附值比如:
int q;
p = &q;
*p =5;
就沒問題了
連續宣告多個指標的兩種寫法
int* a;
int* b;
orint *a,*b;
(參見c++primer p102)
5樓:軒逸草
int* p和int *p 寫法沒啥區別,不過我們習慣上用 int *p
下面我重點給你講一下你的程式出錯的原因吧!
int* p=null;在stdio.h標頭檔案中就有對null的定義,它是乙個符合常量,就是整數0.故該語句表示p初始時不指向任一有用的單元。
所以如果你想用語句*p=5; 給p所指單元賦值的話,可以先定義乙個int型的變數如a,然後讓p再指向a(即p=&a;),這樣你的程式就ok啦!
再有一種麻煩點的改正方法,就是使用分配記憶體空間函式malloc,其呼叫形式是:
(型別說明符*)malloc(size)
其功能是:在記憶體的動態儲存區中分配一塊長度為「size"位元組的連續區域。函式的返回值為該區域的首位址。
(型別說明符*)表示把返回值強制轉換為該型別指標,「size"是乙個無符號整數。
6樓:
了解了 原來是寫法區別
7樓:考陣
汗,int* p和int *p
簡直是兩個事情啊!
乙個是宣告都錯了,
第二個才是正確宣告:-)
定義了結構體,結構體有個成員變數是指標型別,而這個變數有是結構體,請問怎麼對這個指標初始化
例如有a,b兩個結構體,a中有b 在main中需要先初始化個b,完成b之後,然後呼叫a.b,這樣就可以完成了!如果直接呼叫a的話,有可能溢位 沒賦具體值時都給null就好 struct a a struct a malloc sizeof struct a memset a,0,sizeof str...
自變數,因變數,因變數有多個指標,用什麼分析方法分析自變數與這些維度之間的關係
可以做因子分析.首先,先將a1到an用提取主成分分析的方法,形成乙個因子,同理,對b項做同樣處理.其次,再在因子的層面上對兩個因子單變數方差分析 當然,如果存在多個自變數因子和多個因變數因子,可以用多變數方差分析 最後,如果想考察兩者的線性的數量關係,可以再做回歸分析.因子分析的步驟 選單欄 分析 ...
指標變數和指標常量有什麼區別,如何辨別
紅領巾飄過 指標常量是乙個位址,指標變數是用來儲存指標常量的乙個變數。我們通常說指標是指指標變數。 指標變數可以改變指標指向的位置,而指標常量初始化之後就不能改變指向的位置 指標常量是指標所指向的位置不能改變。指標變數,可變。至於如何辨別,在於宣告! 指標變數就是可以變的,常量就是不可以變的 如果乙...