c語言問題

2022-05-19 05:14:16 字數 1206 閱讀 1494

1樓:匿名使用者

選bp=a;即把a位址(&a[0],陣列的首位址)賦給p;

s=a,同上。

p++表示p的位址加一,每次加乙個int的大小,比如:p原來表示a[0]的位址,p++後就表示a[1]的位址,以此類推。

p-a,亦是對位址進行運算,如果:p是a[3]的位址 ,s是a[0]的位址,p-s就等於3-0即3.

a是位址進行比較,

b是對p和s所指向的元素的大小進行比較,本題為找最大元素,所以*p大於*s就把p賦給s

c,表示式就不對,p,s是指標不是數字

d顯然也是錯誤的

2樓:藍色草原

很明顯選b啊。

a.p和s都是指標,不能比較大小。

b.對。對p和s所指向的單元進行比較

c.p和s是指標,也就是乙個位址,不能作為陣列下標d.位址減去位址然後再判斷,同樣沒有意義。

3樓:匿名使用者

① 首先,同學我要批評你了。

你程式設計的風格一塌糊塗啊。也不仔細檢查錯了很多地方啊。

這種**寫出來在公司直接就砸飯碗了,知道嗎?

整個**是這樣的 :

main()

; ..int *p;

..int *s;

..for(p=a, s=a; p-a<10; p++) /* 這裡錯了__ 是 "for" 不是 "fir" */

......if(__?__)s=p;

..printf("the max:%d",*s); /* 這裡錯了__ ":" 改成 ";" */

} ②.a 肯定錯了,位址比較無意義。

...b 對

...c 下標不能用位址

...d 有點爭議了,其實d 也能執行的,...但是不符合函式本意。結果會是:

..."the max:6"

4樓:

應該是b吧?一開始p指標和s指標都指向陣列a的第乙個數,如果p指向的值比s指向的值要大,則s指向p,最終s始終指向最大值,但是你的題目打錯了吧?首先flr應該是for;其次,(p=a, s=a; p-a<10; p++) 對嗎??

5樓:匿名使用者

b啊a.p>s //位址值比較,錯誤

c.a[p]>a[s] //p,s是位址值,不可以作為下標值

d.p-a>p-s //位址值比較,錯誤

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...

C語言問題,c語言問題

這是值傳遞,值傳遞的過程的是,系統會給你的實參的值進行乙個拷貝,把這個拷貝傳遞給形式引數。因為是拷貝,所以實參裡頭的值是不會改變的。如果是位址傳遞就不一樣了。補充 你可以定義乙個指標,這個指標指向主函式的結構體。然後子函式的形參也定義乙個指向結構提的指標。這樣就是位址傳遞了。樓主還是好好花點時間看看...

c語言問題,求助,C語言問題,求助!!!

這種問題用哈夫曼樹的逆向思想就可以解決了,所以我建議還是自己按這思想好好研究一下。自食其力。c語言問題 因為 define s a p a a 定義後 是直接替換 運算過程是這樣的 3 3 5 3 5 所以是29 弱勢這樣定義的 p a a 結果就是192 3 3 5 3 5 9 15 5 29 巨...