1樓:吳道子
首先從圖(a)中知道指標pd所指向位址為1430,而pd的位址是1440。1430位址儲存的數字為0.0
指標p的位址是1400,指向的位址是1410。 位址1410儲存數值為7,
指標p2位址為1380,指向位址1350,變數a位址為1350,值為14
指標p1位址為1300,指向位址為1100,而位址1100的值為9
這是這個圖所得的資訊,可以這麼寫為,不要糾結語法,這只是直觀表示
這部分叫(上面)
pd=1430;
*pd=0.0;
*(1410)=7;
p=1410;
*p=7
p2=1350;
*p2=a=14;
&a=1350;
a=14;
p1=1100;
*p1=9;
然後看下面**
1、*pd+=(double)*p1;
由上面*pd為0.0,*p1為9,
所以*pd=9.0;
pd仍為1430
2、p1=&a;
因為上面&a=1350;指標p1指向變數a
所以p1=1350;
3、*p1=*p;
由上面*p=7;
所以*p1=7;這個時候由於p1=&a,所以*p1=7,a的值也變成7
4、p2=p1;
第二步p1=&a;此時p1=1350,指標p2也指向變數a
所以p2=1350
5、*p2/=3;
因為第四步已經改變了p2的指向,*p2指向位址1350的值,也就是變數a的值7,
*p2/=3,也就是7/3,因為a是int,所以*p2=2;此時a也為2。
6、++p2
也就是p2指向了位址1354,這是因為int4個位元組長。此位址值為20
7、++*p2;
++與*等優先順序,按順序先與*結合在於++結合,*p2=20;在++ ,所以為21
總結:1430
9.07
1410
13542129
2樓:匿名使用者
歪不拉幾的 看都不想看
c語言指標簡單的程式設計題 5
3樓:匿名使用者
int main()
ptrdouble = &a[10];
//輸出後是個值
for (i = 0; i<10;i++)printf("%f",result);};
關於c語言指標的選擇題
4樓:愚子珍
首先懷疑你的程式有筆誤,估計你把point( p ) 寫成了 point()了
這樣的話,你的題目就變成這樣了.
point(char *p)
main()
{char b[4]={『a',『b',『c',『d』},*p=b;
point( p );
printf(「%c\n」,*p);
程式執行結果是:?
先簡單說明一下指標:指標就是變數的位址。如char *p;這個p就是乙個指標(位址)。*p就是這個位址裡放的變數(字元)
這個問題的關鍵在point(char *p)這個函式,其中(char *p)的p為形參(就是形式的引數)。可以把這個函式改為point(char *tmp_p)結果是一樣的,但是更容易理解了。
在main函式中,p=b。而b是乙個陣列名,b也是{『a',『b',『c',『d』}這個陣列的首位址。這個首位址裡放的字元就是『a』,所以*p就是『a』。
呼叫point( p );後p的值沒有任何變化,所以說*p是『a』;為什麼說呼叫point( p );後,p沒有任何變化呢?
前面把point(char *p)改為point(char *tmp_p)了。
其實呼叫point(tmp_p);的過程是這樣的:
tmp_p = p;
tmp= tmp+3;
這樣可以看出變化的是tmp, p沒有任何變化。所以p這個位址沒有變,所以p這個位址(也就是說陣列b的首位址)裡放的還是『a』。
另外,tmp_p這個變數的生存週期就是point( p )函式的執行週期。關鍵要明白main函式中的p和point(char *p)中的p不是乙個指標(變數),是兩個指標(變數)。在呼叫point( p )函式的時候把main中的p賦值給了point(char *p)中的p。
5樓:御含靈
7 c 8 d 10 a 11 c
6樓:秋楓
7、c8、d
10、a
11、c
c語言指標題目
7樓:匿名使用者
沒有區別,因為你的p本身的定義是int型指標,最後都會被強制轉換成int型指標。所以第二句p=(char*)0x01;相當於p=(int*)(char*)0x01;舉個模擬的例子吧:doublep;p=(double)5;p=(int)5;最後p只可能是double型,只不過後者的會多乙個隱式的轉換
8樓:紛採
我要來好好說道說道你,我他媽寫了半天才發現這題就是錯的。
想要改變一維陣列並保持,那至少傳乙個二級指標啊,你這個引數規定了一級指標的函式介面,無論怎麼寫都不能讓這個陣列保持下去,因為是傳值呼叫啊,除非用全域性變數,可是全域性變數,引數就失去意義了。總的來說,這題就是錯的。
要說在主函式申請記憶體也行,可是就沒什麼意義了,你這個封裝有什麼價值
c語言指標一道簡單的程式設計題
9樓:紫薇參星
按照你來
的要源求編寫bai的c語言du程式如下zhiinclude
int main()
執行結dao果
a=30
76a=100,b=76
10樓:聽不清啊
#include
int main()
c語言,指標,c語言,指標?
void swap int a,int b 這個函式,只是交換了a和b的指向,比如說原來a指向1000,b指向2000,交換後a指向2000,b指向1000。但是呢,指向的內容並沒有變,位址為1000裡面的內容依然是3 假設 位址2000裡面依然是5,而且p和q依然是分別指向1000和2000,也就...
C 新手指標習題,c 指標練習題 求解答
11.若有以下定義,則變數p所佔記憶體空間的位元組數是 float p a.1 b.2 c.4 d.8 12.若有以下定義,則賦值錯誤的是 int a,p,q 13.下列程式執行結果是 include int main a.b.10 c.有語法錯誤 d.q 14.若程式段static char li...
c語言的簡單習題,C語言的簡單習題?
0x是十六進製制,凡是十六進製制最大只到f。所以比如,0x0g1就是錯的 0xab05 0l 597.25 這段 百年難得一見,要評一評,一行一行的來行一 main使用不當,最簡單無返回值的 void main 資深程式設計一般用int main 程式結尾要加上return 0 就是告訴系統成功執行...
c語言指標傳遞問題,C語言指標問題
指標傳遞 引用傳遞指的就是呼叫函式時傳遞的是指標 引用。與之對應的還有傳值方式。這種方式只是傳遞了變數的乙個副本。也就是說只傳了乙個值而已,並不是這個變數,所以就無法對這個變數更改了。而傳遞指標或者引用就不一樣了。傳遞的是乙個變數位址,那麼你更改這個位址對應的內容也就是修改這個變數了。所以在陣列排序...
c語言練習題,C語言練習題
其實,每個人的學習方式,思維習慣,都不太一樣。也許,對於一些所謂的經典,但根本不適合與某個人的學習。另外,通過學習書中的知識,書中的例子。主要是掌握相關的知識,熟悉 學習相關的程式設計思想。不要以為,書中的一些例子,學習後直接都能,用來解決生活中的問題。生活中的事情,千變萬化,豐富多彩,通過學習相關...