C語言中inta5intbba0a為什麼等於b

2021-03-04 05:06:07 字數 3606 閱讀 7253

1樓:依然收銀

a指的a陣列的首位址,b是乙個int型別的指標,b=&a[0],就是講a數字的首位址賦給b,a就等於b,同時可以知道a[0] == *b為true

2樓:匿名使用者

b是乙個指標,而且指向a陣列的第乙個位址,對於陣列來說,標誌符也是指向陣列的第乙個位址,所以a=b

3樓:紅客葉鈞

因為******************************,望採納。。。

int *a=b與int*a=&b有什麼不同

4樓:匿名使用者

這是典型的c語言指標題

int *a表示定義了乙個int型的指標

*a=b表示指標a指向b,即把b賦值給*a;

&是取位址符,&b代表b在記憶體中的位址,*a=&b表示把b的位址賦值給*a。

利用編譯器編譯該**:

結果為:

拓展資料

*和&運算

(*p)操作是這樣一種運算,返回p 的值作為位址的那個空間的取值。(&p)則是這樣一種運算,返回當時宣告p 時開闢的位址。顯然可以用賦值語句對記憶體位址賦值。

我們假設有這麼兩段記憶體位址空間,他們取值如下:(單位:h,16 進製)

假設有這麼一段**:(假設開闢空間時p 被分配給了3001h、3002h 兩個位置)

int *p;

p=2003h;

*p=3000h

**p的值為多少?

**p=*(*(p))=*(*(2003h))=*(3000h)=3000h。

那麼&&p、*(&p)和&(*p)又等於多少?

&&p=&(&(p))=&(3001h),此時出錯了,3001h 是個常數怎麼可能有位址呢?

*&p=*(&(p))=*(3001h)=2003h,也就是*&p=p。

5樓:南北

*a=b表示a指標所指向的資料,等於b。*a=&b表示a指標所指向的資料,等於b的位址。

1、int *a=b是說把b的值賦值給指標a(*a), int*a=&b是說讓指標a(*a)指向b的位址。 舉個例子說: int b=5,c=9。

2、int *a1=b;----------------------1。

4、b=c;-------------------------3 這個時候*a1=5,*a2=9 。因為在說第一步時已經把b的值,也就是5傳給*a1,所以*a1=5 。在第二步時,把b的位址,也即是&b傳給了*a2,這個時候*a2=5。

5、但是在第三步時,b的值變成了c的值,也就是9,我們知道這個時候 b的位址早就傳給*a2了,所以,*a2和這個時候的b的值是一樣的, 即*a2=9。

6樓:匿名使用者

int *a=b是說把b的值賦值給指標a(*a), int*a=&b是說讓指標a(*a)指向b的位址。

舉個例子說:

int b=5,c=9

這個時候*a1=5,*a2=9 。因為在說第一步時已經把b的值,也就是5傳給*a1,所以*a1=5 。在第二步時,把b的位址,也即是&b傳給了*a2,這個時候*a2=5 。

但是在第三步時,b的值變成了c的值,也就是9,我們知道這個時候 b的位址早就傳給*a2了,所以,*a2和這個時候的b的值是一樣的, 即*a2=9。

7樓:一口沒水的枯井

1 答案

不同點在於a的值不一樣

2 關於指標

在32位機器裡,指標型別為4個位元組,一般用16進製制的形式來表示3 分析

int*a;表示a被宣告為int型指標型別(1)在int *a=b;裡

若b是整數12,則 a的值為 0x0000000c在c語言中 int*a=b;是報錯的,需要強制轉換才行 int*a=(int*)b

(2)在int *a=&b;裡

表示把b的位址賦給a,加入b的位址是 0xff00ff00則a的值也為0xff00ff00

當然,在每次程式執行時,b被分配的位址是隨機的,所以不一定是0xff00ff00

4 用乙個小示例驗證

#include

int main()

5 執行結果

8樓:oo怨念

int *a=b

這種寫法是錯的,你不能用乙個int型的變數去初始化乙個int*型別的變數。

9樓:匿名使用者

int *a=b;

宣告乙個int *型指標變數a,並將其值初始化為b的值,這裡b應該也是個int *型指標變數

int *a=&b;

宣告乙個int *型指標變數a,並將其值初始化為變數b的位址值,這裡b應該是個int型變數

10樓:火狐狸

我是學習計算機的,我來說吧

int *a=b是說把b的值賦值給指標a(*a),int*a=&b是說讓指標a(*a)指向b的位址。

舉個例子說,

int b=5,c=9

這個時候*a1=5,*a2=9

因為在說第一步時已經把b的值,也就是5傳給*a1,所以*a1=5在第二步時,把b的位址,也即是&b傳給了*a2,這個時候*a2=5但是在第三步時,b的值變成了c的值,也就是9,我們知道這個時候b的位址早就傳給*a2了,所以,*a2和這個時候的b的值是一樣的,即*a2=9。

謝謝把分給我。

11樓:匿名使用者

簡單:int *a=c;定義指標a並賦初值c;

相當於int *a;//定義指標變數a

a=c; //給a賦值c

所以int *a=b;初值為b

int *a;

a=b;

int *a=&b;初值為b的位址

int *a;

a=&b;

對指標的操作要慎重,最好定義的時候賦初值,使用的時候判斷有效性

12樓:戲水兒

int *a=b

int*a=&b

這兩個a都是int*型別的指標,第一句是a=b,b應該也是乙個指標,第二句是將b這個變數儲存的位址賦值給了a。

13樓:匿名使用者

int *a=b 將變數b的值賦給*a

int*a=&b 使a指向b

c語言中int a=1,b=2,c c=1.0/b*a 輸出結果為什麼

14樓:匿名使用者

結果是c的值是0

因為1.0 / b 都會轉換位浮點型,結果是0.5, 0.5 * a 也是會把a轉為浮點型,結果是0.5

而c是整形,會對右邊運算的結果取整,所結果就是0了。

c語言中(int)是什麼意思,C語言 int a是什麼意思?

int 代表的是int型的指標。宣告的變數就叫指標變數。存放位址的變數稱為指標變數。指標變數是一種特殊的變數,不同於一般的變數,變數存放的是資料本身,而指標變數存放的是資料的位址。舉例 int a 68 系統為變數a分配的首位址為0x065fdf4h,宣告空指標long p null,p a是存放變...

在c語言中,定義陣列inta4345678910則a

陣列不能這樣初始化要用逗號,a 0 3 6 這個陣列貌似不對吧 c語言問題 若有說明int a 4 1,2,3,4,5,6,7,8,9 則陣列a第一維 若有說明int a 4 則陣列a第一維是3。定義陣列並賦值時c語言規定下標是這樣的,a n 中的n個元素應該是a 0 a n 1 因此int a 4...

C語言中,已知inta1,b2,c3以下語句執

應該是看成 if a b a b b c if只管到c a 因為a 1,b 2,不滿足if,所以執行後面的,a b 2,b c 3,c還是3選b 條件a b不成立 所以c a執行,所以 a 2,b 3,c 3 a,原文中a不大於b,則不滿足if條件 則不執行下列語句 所以abc的值不變 沒學過都會 ...