1樓:豬頭或火寶寶
你好!!!
首先我們已經知道:a,b,都是指標變數,*a表示指標變數所指向的值,同樣*b也是如此。*a=*b就是表示把指標b所指向的值賦值給指標變數a所指向的值。
但是要是指標a要是沒有初始化或是開闢空間的話,這樣賦值就有危險!!!
例如:int *a;
int *b=5;
*a=*b;
首先宣告一個指標變數a,但是系統並沒有為其分配空間,也就是說此時指標變數的值即地址不確定的,那麼*a也就表示一個不確定的值,有可能這個值是系統的重要資料,那麼*a=*b;不就修改了系統的資料了嗎???也就變數的危險了。
所以宣告指標變數的時候一定注意初始化。
2樓:就是佐
這個應該是 ab 指標指向的值的交換
if(*p1<*p2) { /*交換指標變數指向的整型變數*/ t=*p1; *p1=*p2; *p2=t;
就如在這段程式當中 如果(*p1<*p2) 則 交換
3樓:匿名使用者
“=”不是數學中數值的相等,而是說把指標b所指的內容賦予a
4樓:
b指向空間中的值賦給a指向的空間。
5樓:關東管領
這是指標a所指向的值的大小變為了b所指向的值的大小
6樓:彭珂的課堂
c語言_071_指標的定義和使用_上
c語言中,指標問題!*a=b和a=&b,有什麼不同?a是指標
7樓:匿名使用者
*a=b,是吧b的數值放到a指向的空間
a=&b,是把b的地址賦值給a
相同之處就是*a b的數值相同
不同回之處是答,上面的是數值賦值,那麼a指向的空間沒有改變而下面的賦值a指向的地址改變了,也就是a申請的記憶體空間中的數值變成了b的地址
8樓:匿名使用者
*a=b; 這個是把b的值賦值給指標a指向的空間
a=&b; 這個是把b的地址複製給指標a
9樓:匿名使用者
同意cpucash......
c語言指標中a=*b與*a=b區別
10樓:匿名使用者
a=*b把b指標指向的地址裡的值賦給a
*a=b,把a指標指向的地址裡的值用b的值替換
c語言中 a=b==c怎麼理解
11樓:非常可愛
“=”是賦值符,把c的值賦給b賦給a,最後a、b、c的值都相等,“==”是判斷符;
=賦值==等於運算說a=b=c,表示式執行a值賦給b、c執行完abc值相等;
a=b==c,複合表示式先a值賦給b與c比較相等則返0,否則返非零值;
運算b==c,若b與c相等,那麼得出的值為1。
擴充套件資料
c語言中a=b--<=a||ab!=c的計算
左邊:(a=b--)<=a;
計算b--的值,b--的值為2,得到這個值也就讓b的值變成了1,賦值給a後a的值為2,(a=b--)的值也就是a的值為2,2<=2成立,所以左邊為真;
右邊:(a+b)!=c,a+b的值為3,c的值為3,所以右邊為假真||假的結果為真;
b--使b的值變成了1;
a=b--的賦值使a的值變成了2;
12樓:匿名使用者
int a = 1, b = 2, c = 3;
a = b = c 意思是將 c 的值賦給 b,再賦給 a,a,b,c 都等於3。
a = b == c, = 的優先順序低於 ==,會先判斷 b == c 結果為假,就是0值,然後將0值賦給 a,也就是執行後,a = 0, b = 2, c = 3。
a == (b=c),會先講 c 值賦給 b, 然後判斷 a 是否等於 b,表示式得到一個0值(a不等於b),但該判斷不會影響 a 的值,結果 a = 1, b = 3, c = 3。
a == (b == c) 會先判斷 b是否等於c,結果為0,再判斷 a 是否等於 0,結果也是0。但該判斷不影響a,b,c的值。還是 a = 1, b = 2, c = 3.
13樓:安徽新華電腦
涉及到一個誰先把值賦給誰的區別。其他沒啥區別。
c語言中指標變數怎麼理解?怎麼用?
14樓:
指標變數是一個變數,它儲存的是另一個變數的記憶體地址。你如果知道了這個指標變數儲存的值,就可以知道它所指向變數的記憶體地址,於是就可以間接訪問到那一個變數。
定義:指標變數型別 *指標變數名1, *指標變數名2, ... ;
例如:int main(void)
把指標作為函式的引數傳遞,可以使函式可以訪問函式外部的變數,例如:
void swap(int *a, int *b)指標也可以用於傳遞陣列,陣列名本身就是一個指標:
void func(int a, int n)指標還可以指向指標,指向結構體(struct),指向陣列int **p; /*指向int指標*/struct *** *p;
int (*p)[100]; /*指向一個int[100]陣列,括號不可少*/
15樓:申覓荷
指標變數是一個存地址的變數,賦值是隻能傳地址(跟int型只能賦值整型一樣的)
16樓:顏海鏡
不知道你會不會彙編指標其實就是暫存器間接定址
我覺的這樣解釋最直接容易理解,當然是要你會彙編的話,不懂的話,指標其實是個變數只不過這個變數的值是地址
c語言中 char *a,*b; a=b ; 這個a=b 意思是讓指標a指向b還是什麼意思?
17樓:匿名使用者
將指標變數b的值賦值給a,結果就是a和b指向同一地址
18樓:韓濤董青
a指向b所指的地方 即ab指向了同一個地方
19樓:匿名使用者
a和b指向記憶體裡同一個區域。
c語言中 *b=&a什麼意思 *b和&a分別是什麼含義啊?
20樓:秋楓
*b=&a這種寫法只有在定義時這麼寫才對,例如 int *b;*b=&a;是錯誤的,正確的是int a=1;int *b=&a;意思是說定義一個指標b,b裡存的是a這個變數的地址。如果定義好了一個這真b,那麼*b就指b這個變數裡存的地址裡的值(有點繞口,慢慢理解),&為取地址符,&a就是a這個變數的地址。
21樓:匿名使用者
說明b是一個指標變數,其定義應該是這樣:int *b,a;
*是取值運算子,*b就是取b指向儲存空間的值;
&是取地址運算子,&a表示取變數a的地址。
*運算子後面應該跟指標;而&後面應該跟變數名(或陣列元素,或結構體變數.成員名)。
22樓:餡嘍嘍嘍
(a>b)?a:b
表示如果a>b為真,則取
問號後邊的第一個值,這裡是a
如果a>b不為真,則取問號後邊的第二個值,這裡是b
《表示式1>?《表示式2>:《表示式3>; "?
"運算子的含義是: 先求表示式1的值, 如果為真, 則執行表示式2,並返回表示式2的結果 ; 如果表示式1的值為假, 則執行表示式3 ,並返回表示式3的結果。
若a-b非零值(即a-b邏輯值為1)則輸出a值;若a-b為零值(即a-b邏輯值為0),則輸出b值。
/ 代表的是 除法。如果 a 和 b 都是整數,不是 float 等這種浮點數,所以結果只保留整數,所以 a/b 算出來是整數。
另外,% 代表的是取餘數,即: 5%3 等於 1 餘 2,結果就是 2
23樓:黑夜巫女
b是一個指標變數,*b = &a是b裡存的是變數a的地址
C語言指標,c語言指標詳解
結果肯定是a撒。你在函式point char p 呼叫後沒有返回 p的值 原因是你的函式就沒有return 語句,且 形參的值不能傳遞給實參 在point函式中改變的只是指標的值,指標指向的內容不受影響。可以這樣修改一下 void point char p 不知。樓上說的。你懂了沒。就是p 3 這句...
c語言指標怎麼指向結構陣列,c語言 指標怎麼指向乙個結構陣列?
黃邦勇帥哥哥 樓上都回答得這麼複雜嗎?我寫簡單一點的 struct str void main 宣告乙個結構陣列並對陣列a 0 中的成員n和s分別賦值為1和2,對a 1 中的成員設定為3和4。注 有些編譯器可能不需要最前面的struct來宣告結構物件。struct str p a 宣告乙個結構指標,...
C語言,指標問題,C語言,指標問題
指標的概念 指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別,指標所指向的 型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。讓我們分別說明。先宣告幾個指標放著做例子 例一 1 int ptr 2 char...