1樓:匿名使用者
#include
int main(void)
2樓:匿名使用者
int *p;
scanf("%d",*p);
有以下結構體說明和定義,指標p指向變數a,指標q指向變數b,則不能把節點b連線在節點a後的語句是
3樓:匿名使用者
b是答案,因為p指向a的位址,指標不能直接用.操作符來引用結構體中的成員,只能用->來引用
從鍵盤輸入二個int型別的數並儲存到變數中,將二個變數的值交換,輸出二個變數的值。
4樓:
#include
int main()
5樓:匿名使用者
定義第三個變數,然後進行交換就可以了
6樓:兄弟連教育北京總校
c語言#include
main( )
p是指標變數,*p=a和p=&a的區別
7樓:
1*p=a; //表示將a的值賦給p所指單元。
p=&a; //表示將p指向a單元,即將a單元的位址賦給p。
2int a,b;
int *pa,*pb;
a=10;b=20;
*pa=a;*pb=b; //這兩個語句有問題。pa,pb是野指標,沒有指向任何單元。
printf("%d,%d\n",*pa,*pb);
printf("%x,%x\n",pa,pb); //pa,pb的野指標,其值不確定。
printf("%x,%x\n",&a,&b); //輸出a,b的位址。
8樓:金色潛鳥
分清是語句裡還是宣告裡。
宣告 裡 int *p=a; 宣告 *p 是 int 型指標,初始化,讓 p 指向 a [陣列] 的始位址。
宣告 裡 int p=&a; 宣告 p 是 int型變數,不是指標,初始化,把變數 a 的位址 &a 賦給 p.
語句裡,若 p 是指標變數,
*p=a; *p 表示 值,把 變數 a 的當前值 賦給 指標。(指標指向的位址不變)。
p = &a; p 表示指向的位址, 把 變數 a 的位址 &a 賦給 p, 也就是讓指標指向 變數 a。
例如:int a=2, b=3;
int *p=&b; // 指標指向位址 初始化, 指向 b
printf("address: %p value:%d\n", p, *p); //輸出位址同 b, 數值 3
*p=a;
printf("address: %p value:%d\n", p, *p); //輸出位址同 b, 數值 2
p= &a;
printf("address: %p value:%d\n", p, *p); //輸出位址同 a, 數值 2
---------------------
9樓:匿名使用者
這段**在一些編譯器是編譯不過的,因為你沒有給pa,pb賦值,pa,pb兩個指標指向**,根本不知道
*p=a 和 p=&a是完全不同的兩碼事
*p 是 p 指向的位址的值,改變了值不是改變了它的位址,而p=&a就是改變p所指向的位址,使之指向a
舉個例子說明一下
p=&a; //p儲存的是a的位址
*p=b; //並不是p儲存了b的位址,而是將b的值儲存到p所指向的位址的那個值,這句相當於a=b,最後改變了a的值,而非p所指向的位址
10樓:匿名使用者
最關鍵的錯誤在pa和pb這兩個指標沒有初始化,
當執行*pa=a;*pb=b;時結果不可預期, 很可能程式應崩潰掉的.
11樓:匿名使用者
區別很明顯,*pa=a,*pb=b只是說記憶體pa位置存放的值是等於a並不是pa指向變數a的位址單元,因此輸出的位址是不一樣的。
C語言中定義函式,變數是指向指標的變數,呼叫時要怎麼呼叫
首先fact函式返回的是double型別,第乙個引數是double型的二維指標.所以是 c i fact c,y,z 因為double c 3 是二維double指標,c i 是乙個double一維指標,c i 就是double型資料。c是二維指標,可以傳過去 c i fact c,y,z c i ...
pa是什麼含義,誰是指標變數,p還是p
int a 1 int p a p是指標變數 p指向a 注 此時 p表示p指向a的值,即 p 和 a 值是一樣的 當然也可以通過p改變a的值 p 3 此時a也等於3 int a,p a 這個語句定義兩個變數,乙個是整型變數a,另乙個是指標變數p,其指向a,或者說變數p中儲存a這個儲存單元的位址。p ...
c指標變數的問題,C語言指標變數大小的問題
p 1,是把1賦值給p所指向的物件,而p 1是把1賦值給p,這個1是被當做位址的。p 1和p 1是不同的概念,p 1 是賦值語句,還有在c語言中 1 0 是作為真假來用的,就相當於布林型數一樣。這兩個語句都是合法的。區別就是指標 的意思是取位址的意思。p是乙個指標,他的值是記憶體中一塊記憶體的位址,...