C 類的一道簡單題目,C 的一道簡單的題目。。

2022-03-24 16:50:40 字數 1768 閱讀 6905

1樓:上網去跑跑

class cdemo

;void main()

(int*)demo :表示強制型別轉換。把cdemo型別的指標轉換成int 型

(int*)demo+1:指標向下移動一位,正好指向b的位址。

*((int*)demo+1):向b這個位址裡面寫入20

*(int*)(demo+4)=20;//你這樣寫成什麼了???+4是什麼意思???

所有型別的指標長度都為2.

當你能確定當前指標的指向時,+1就是向高位移動一位。此處的1是邏輯1.對於整型就是「2」。

在類cdemo 中有兩個成員a和b,它們在絕對位址上是相連的。a的位址+1就是b

的位址。

希望你能明白。

覺得這樣寫不太好,乾脆直接寫成:

demo->b=20不就行了嗎??

2樓:錘子錘子大鎚頭

你怎麼知道a,b的位置是連續的呢?為什麼要用demo+4 去表示b呢?

3樓:匿名使用者

是這樣的

demo+4之後所指的位置是原來的demo後面4個demo的位置,而不是4個位元組的意思

你這裡要加四個位元組,才能顯示20,而不是加自個demo類大小的位元組

4樓:罵了隔b的

瘟道死動態分配位址的,(int*)(demo+4)尋不到位址吧,我也是新手,期待高手...

c++的一道簡單的題目。。

5樓:

你那樣判斷的邏輯上有錯。

#include

using namespace std;

int main()

}for (c=1; c

}cout<

return 0;}

c++的一道簡單題目

6樓:匿名使用者

你的if語句亂套了,改成用&&連線就可以了,else只會進入上乙個if不成立的情況

你的程式改正後的

#include

using namespace std;

int main()

return 0;}

一道簡單c++題目

7樓:巴扎嘿

這個是不是將乙個八進位制數字(字串格式的)轉換為十進位制數?

s是乙個指向字串的指標。*s-'0'就是將當前的數字字元轉換為數字。比如'5'-'0'就變成5了。

n=n*8+*s-'0';

每位計算出數字後乘以8,因為是8進製的。轉換為十進位制。計算出的n應該就是對應的十進位制數

8樓:繆立軍

n=*s-'0',就是兩個字串相減,這裡應該是想得到對應字串的數字表示,如'8'得到數字量8,'0'相當於數字字元的ascii碼偏移,如果知道字元'0'的ascii碼值,減去其ascii碼值,效果是一樣的,用減'0'的好處在於可以不用記ascii碼值。

不懂可以繼續問我

9樓:黑暗v英雄

n=*s-'0';是兩個字元相減。就是s裡面的字元減去字元0。這裡是把字元轉成整型相減的,可以去查書附錄的ascii碼表。比如'b'-'a'的結果就是1。

n=n*8+*s-'0';的意思就是把n乘以8後加上s裡面的字元減去字元0,這裡是把字元看成整型計算的。

一道C語言程式設計題求解一道簡單的C語言程式設計題

樓主,抄樓上不太會說話,不要理,bai等等我貼出 沒有其他語言基礎du的c語言初學者起zhi步是慢了一dao點,但是要渣油 include int main return 0 dim arr斐波 那契數bai 列du 19 as integer arr斐波那 zhi契數dao列回 答 0 1 arr...

C語言的一道題目,C語言tow函式題目一道

include include 標頭檔案 include 標頭檔案 int main int a 111 b 100 c 111 n,m,k 0,t,l 0,s scanf d d n,m srand unsigned time null srand 就是給rand 提供種子 for int i 0...

一道很簡單的C語言題

include include void main sum sum max min score sum n 2 printf 2f n score 太多了,看到就累! sum應在while迴圈中初始化,也就是說每次輸入前sum都必須清0 include include void main sum s...