int指標變數宣告定義,變數定義和變數宣告的區別

2021-12-25 02:25:34 字數 2852 閱讀 9424

1樓:帥得有點壞

第一句話錯,

原因是:int的指標變數p裡可以放空指標或是一個整型值,int型的指標就只能存放int,這裡的null意思是申明p指向空,不是存放空指標。

第二局也不對

int *宣告的指標變數裡面放的不應該是一個指標麼?

裡面存放的是一個地址,他指向一個int

所以應該p=&a;

你的這種p=&5的寫法是不對的,只能記錄下變數的地址,

2樓:匿名使用者

1.可以這麼說。int *p;你不賦址也可以。不是「放」,而是「指向一個地址」。

2int *p=&5;//是錯誤的。&符號是取「空間地址」的意思。

p=&a;//這樣可以,表示取a的空間地址賦給指標p。

//字元「5」本身是值,沒有空間沒有地址。

int a=5;//表示申請一段空間,空間中存上「5」這個值!!

3樓:

int *p=a;//定義指標變數a的指標

這句是錯的,p是指標,只能指向地址,可以這樣int *p=&a;//定義指標變數p指向a的地址

int *p = &5;不能這麼寫,不能對常數取地址

4樓:匿名使用者

1、定義指標變數的一般形式如下:

型別名*指標變數名1,*指標變數名2,... *指標變數名n ;

2、 空指標

空指標是一個特殊的指標,它的值是0,c語言中用符號常量null(在stdio.h中定義)表示這個空值,並保證這個值不會是任何變數的地址。空指標對任何指標型別賦值都是合法的。

一個指標變數具有空指標值表示當前它沒有指向任何有意義的東西。

3、 void指標

(void *)型別的指標叫通用指標,可以指向任何的變數,c語言允許直接把任何變數的地址作為指標賦給通用指標。但是有一點需要注意void*不能指向由const修飾的變數第三句是非法的,只有將ptv申明為const void * ptv;上述第三句(ptv = &test),才是合法的。

5樓:匿名使用者

p中存地址 *p指 p地址指向的內容 a 直接就是值

變數定義和變數宣告的區別

6樓:佳佳萬萬

變數的定義用於為變數分配儲存空間,還可以為變數指定初始值。在一個程式中,變數有且僅有一個定義。 宣告用於向程式表明變數的型別和名字,定義包括宣告:

當定義變數時宣告瞭它的型別和名字。可以通過使用extern關鍵字宣告變數名而不定義它。

定義指標變數時候2種寫法有什麼區別int* p和int *p 20

7樓:匿名使用者

這兩種寫法的功能沒有區別。

這個程式出錯是因為你沒有為p分配空間,所以5就無處可放,所以出錯:

#include

#include

int main()

------------------------------------------

附:網友「loveqzl」的說法是不正確的,這兩種寫法的作用是一樣的,只不過第一種用法會使程式設計師產生一種錯覺,錯誤地認為int*是一種資料型別,這種認識就會使其寫出類似「int* a,b」這樣的指標定義語句,但是這樣做,b就不是一個指標,而是一個int變數

******************************************

80407003

8樓:月夜儛

這兩種定義方法是一樣的吧

printf("%d\n\n",*p)應該是printf("%d\n\n",&p);

9樓:匿名使用者

樓上的說的很好,建議大家養成int *p,*q這種習慣,如果int*連寫的話,容易犯int* p,q這樣的錯誤.

10樓:匿名使用者

沒有區別

int* p 是c++寫法

int *p 是c寫法

int *p;

只是一個指標 你沒有用他指向任何地址的時候不能附值比如:

int q;

p = &q;

*p =5;

就沒問題了

連續宣告多個指標的兩種寫法

int* a;

int* b;

orint *a,*b;

(參見c++primer p102)

11樓:軒逸草

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"是一個無符號整數。

12樓:

瞭解了 原來是寫法區別

13樓:考陣

汗,int* p和int *p

簡直是兩個事情啊!

一個是宣告都錯了,

第二個才是正確宣告:-)

typedef結構體指標變數再去定義變數什麼意思

driverextension是一個你自己命名的結構體的名字 看起來是驅動拓展?結構體裡的結構是自己定義的,不過這個結構體貌似是引用了另一個結構體。你說的pdriver extension driverextension就是這樣定義結構體的,沒有問題 typedef是自定義型別,相當於,用pdriv...

VB定義變數的問題,vb定義變數的問題

這屬於結構體變數,你可以使用變數的元素,例如 可以呼叫 abc.name 也可以給它賦值,或者abc.class 總之就是類似與陣列元素,你可以使用其中的元素,但不能用一個整體來使用,但定義的時候可以整體定義,例如 dimabc asstudent,定義了abc 那麼abc就自動包含了2個元素,一個...

Flash題目定義變數時宣告資料型別的形式為

var 變數名 變數型別 如 var n number 以上宣告一個數字變數 var s string 以上宣告一個字元變數 var a array 以上宣告一個陣列變數 var var1 number flash 的定義變數怎麼使用啊?舉個例子 有10個mc,分別是mov1 mc,mov2 mc....