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 巨...