c語言指標習題,C語言指標習題

時間 2022-03-07 04:57:33

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語言練習題

其實,每個人的學習方式,思維習慣,都不太一樣。也許,對於一些所謂的經典,但根本不適合與某個人的學習。另外,通過學習書中的知識,書中的例子。主要是掌握相關的知識,熟悉 學習相關的程式設計思想。不要以為,書中的一些例子,學習後直接都能,用來解決生活中的問題。生活中的事情,千變萬化,豐富多彩,通過學習相關...