*p=&a和p=&a C語言指針未初始化能給另一個指針賦值么?
C語言指針未初始化能給另一個指針賦值么?我試過哈,第一次可以編譯通過,但是不能運行,錯誤!第二個是正確的格式。指針必須指向空格或null。我認(rèn)為它是指向一維數(shù)組的指針:inta[10],a是指向一維數(shù)
C語言指針未初始化能給另一個指針賦值么?
我試過哈,第一次可以編譯通過,但是不能運行,錯誤!第二個是正確的格式。指針必須指向空格或null。我認(rèn)為它是指向一維數(shù)組的指針:inta[10],a是指向一維數(shù)組的指針:inta[10]int*P=ap指向數(shù)字組的指針變量。相同:可以訪問數(shù)組的元素,例如a[i]和P[i],*(P i)等價物。區(qū)別1:A是指針常量,其值不能更改。例如,int a[10]int b[10]a=b//試圖更改常量的值,非法操作!P是可以更改其值的指針變量。例如,int a[10]int*P=a int b[10]*P=b//嘗試更改變量的值是合法的!區(qū)別2:int a[10]int*P=a printf(%d%d”,sizeof(a),sizeof(P))//輸出40,4當(dāng)sizeof用于計算指針大小時,如果是指針常量,則結(jié)果是指針常量所指向區(qū)域的大小。例如,A.由10個int元素組成,占用4*10=40字節(jié)。如果是指針變量,則結(jié)果是指針變量本身的大小。指針變量通常占用4個字節(jié)。
可以把一維數(shù)組指針賦給另一個指針嗎為什么?
指針變量是用于存儲指針的變量。例如,inti,J,*P,*q定義整數(shù)變量I和指針變量P。I用于存儲整數(shù),P用于存儲指針,但指針指向整數(shù)變量。P=&I將I(即指針)的地址存儲在變量P中,指針P指向變量I;同樣,P=&J指向變量J。當(dāng)q=P時,指針變量P為指針變量q賦值,即存儲在變量P中的指針存儲在變量q中。如果P最初指向J,然后q也指向J。
指針變量給指針變量賦值什么意思?
指針就是地址。所以你的問題不對。
我的理解是,我想問為什么變量需要取地址,然后給指針變量賦值,即int a,*P P=&a
讓我們來談?wù)勔粋€小概念,數(shù)字23,在句子“我今年23歲”中,23的意思是年齡;在句子“我的偶像穿著23號籃球服”,23是籃球服的號碼。也就是說,數(shù)字23在不同的句子環(huán)境中具有不同的語義。
在本文中,我們定義了兩個成形變量。在內(nèi)存中,它們都存儲二進(jìn)制代碼,但語義不同。一個用于存儲整數(shù),另一個用于存儲指向成形變量的指針??傊?,這兩個變量是不一樣的。一個是存儲常用值的公共變量,另一個是存儲另一個變量的物理地址的特殊變量(因此我們需要添加*符號來區(qū)分它)。
你能理解嗎?如果你不明白,你可以請我再回答這個問題。
(C語言)地址為什么要變成指針才能賦值給指針變量呢?
請好好學(xué)習(xí)指針。這是如何通過指針賦值。例如,上例中的int a=10、int*P=&a*P=20、cout<<A<<endl輸出20。在初始化過程中,a被賦值為10,然后指針P被定義并初始化為a的地址,這樣P指向a,然后通過星號將P所指示的內(nèi)存賦值為20。這被稱為間接尋址,因為P的值是a的地址,所以*P表示a的值,而a被改為20。=“”在您的例子中,獲得的值被分配給E表示的變量。如果使用E,E的值將被改變。E是一個局部指針變量,函數(shù)將在末尾釋放。用e表示的變量不會得到值,也不會改變。=“”>
例如,打開一個空格:char*P=(char*)malloc(10),然后可以賦值1,strcpy(P,“Hello”)2,數(shù)組形式賦值。P[0]=“a”P[1]=“B”3。指針窗體賦值。*P=“a”P=“B”4。Memset(P,“a”,10)將所有內(nèi)存空間初始化為字符“a”