1樓:匿名使用者
哥幫你看,給分我。。
我先洗澡,有什麼問題繼續問
double t=15.9375;
//double佔8個位元組。 &t 則是指向double型的指標(指向8個位元組的第一個位元組)。
char *low=(char *)&t;
char 佔1個位元組,char *low 為指標,指向char型變數的第一個位元組,也是唯一一個位元組。
(char *) &t ::::&t本來是表示8個位元組的double的指標。但被強制轉換成表示1個位元組的char指標。指向double t 的第一個位元組。
所以 char *low=(char *)&t; 指向double t 的第一個位元組。
char *high=(char *)(&t+1)-1;
(&t+1) &t還沒被強制轉換,所以&t + 1 表示指向double t 後的8個位元組。
(char *)(&t+1)強轉後,指向 &t+1表示double t 後的的第1個位元組。
後退一個(char *) 的距離,即一個位元組。指向double t中八個位元組中的最後一個位元組。
char *cp=high;
指向double t中八個位元組中的最後一個位元組。
所以最後是:
char *low=(char *)&t; 指向double t 的第一個位元組。
char *cp=high;指向double t中八個位元組中的最後一個位元組。
2樓:匿名使用者
double是8個位元組,char *low=(char *)&t;和char *high=(char *)(&t+1)-1;就是指向double中首位元組和末位元組的指標,&t+1是跳過double型別的8個位元組。最後就是各個位元組的二進位制表示輸出。希望可以幫到你,呵呵!
3樓:
因為在32位windows中存放double佔用8位元組,而一個char型別佔用1個位元組
char *low=(char *)&t;表示將low指向t這個浮點數的最後一個位元組
char *high=(char *)(&t+1)-1;表示將high指向t這個浮點數的第一個位元組
下面的迴圈, bitset<8>說明一次輸出8位, 也就是1個位元組.
從t這個浮點數的第一個位元組開始輸出.一直輸出到最後一個位元組
因為cp是一個char型別的指標, 所以cp--就會向前移動一個位元組, 剛好8位.
4樓:匿名使用者
double t=15.9375;//這個就必說了吧
char *low=(char *)&t;//這個稍微複雜點。。定義一個指向char資料型別的指標變數low,這個指標變數low指向存放t變數地址的地址。
這個和上面差不多,稍微有點繞就是把存放t的地址加1後,用另外一個指標指向這個加1後的地址(把這個地址叫a),也就是開闢一個char空間來存放(a),這個char空間地址叫b,再然後把b-1,最後再用high這個指標指向b-1這個地址。
char *cp=high;//注意,這裡的high裝的是上面的b-1這個地址,然後用指標變數cp來指向high。
好累。。。建議你去看看譚浩強的《c程式設計》指標變數那一章,他用一種很通俗易懂的方式來詮釋指標。
分給我哦。。
5樓:小小樂師
其實將char *cp=high;去掉,
改while(cp >=low)====》while(high >=low是一樣的
一道c++填空題,求高手幫忙講解翻一下,小弟新手,看的不怎麼懂。
6樓:花花浪客
答案:(1) sqrt(dx() * dx() +dy() * dy() );
這個沒什麼好說的,求兩點間距離的公式。勾股定理,古人都知道
(2) line::line(point pts, point pte) pt1(pts.x, pts.y),pt2(pte.x,pte.y) {};
用輸入的兩個點來初始化類成員。這個地方前兩位同學回答的略微有點問題,一個是沒有函式體,編譯會出錯;另一個使用了point的拷貝建構函式,但是由於point在題目裡沒有定義拷貝建構函式,雖然現代編譯器都會有預設的拷貝建構函式,不過不知道考官是否給分啊
(3)cout<<"the length of line: "< 直接輸出長度 7樓:匿名使用者 class point //定義座標點類 point(int x0,int y0) intx() inty() void printp() };class line: public point //利用座標點類定義直線類 double dy() double length(); void printl(); //輸出直線的兩個端點和直線長度};line::line(point pts, point pte) ___(2)___//pt1(pts),pt2(pte); void line::printl() 8樓:ok洛陽水席 dx()*dx()+dy()*dy(); pt1(pts),pt2(pte); length(); 關於校驗和計算方面的c++**,哪位大俠幫忙解讀一下,小弟初學,不太懂!謝謝! 9樓: **不懂? 補充點操作符: 1) |按位或操作符:result=exp1|exp2;當exp1和exp2中對應位中至少有一個為1時,result中對應位為1,否則為0。 2) & 按位與操作符::result=exp1&exp2;當exp1和exp2中對應位全為1時,result中對應位為1,否則為0。 3)^ 按位異或操作符:result=exp1^exp2;當exp1和exp2中對應位不相同時,result中對應位為1,否則為0。 4)~ 反轉操作符:將位容器中的所有位都反轉,1變為0,0變為1。 5)<< 按位左移操作符:exp<> 按位右移操作符:exp>>n,將容器中所有的位向右移n位,空出的位用0填充。 7)|=,&=,^= 分別對應|&^三種操作符的複合操作符。 exit 0 不論程式執行到 都是直接結束程序!return 0只是返回到上次函式呼叫的地方,比函式a呼叫函式b,如果在b的某處return 0 那麼程式會返回到a!如果在main函式裡return 0的話和exit 0 效果差不多,不過在作業系統看還是有區別的,exit 0 系統認為是終止執行,r... 你是不是用了什麼網頁翻譯,然後給複製過來了?可以的話請發源 額 這個哪個大神能看懂。求大神幫忙解釋一下下面這段c語言程式!這是一個高精度程式,概括地說就是給加法和乘法分別寫了函式,用我們平時筆算 豎式 一樣的方法算。計算int型存不下的大資料時常用這種方法。你具體 不懂可以把那段抽出來追問我。找個大... 獨上江城bai滿目秋,此句點du 江邊的古城,即南京。一鳥帶煙來別渚,回數帆和雨下歸舟。晚煙悽迷中,一隻水鳥孤零零地落在僻靜無人的沙洲上。秋雨淅瀝不停,江面上稀落地飄零著幾片帆影,駛向歸途。蕭蕭暮吹驚紅葉,慘慘寒雲壓舊樓。蕭瑟的晚風,把山麓層林的紅葉吹得七零八落。暗淡的寒雲密佈低空,陰沉沉地似乎要把...請高手幫小弟解釋一下這個小程式
查詢大神幫忙解釋一下下面這段c語言程式
哪位高人可以幫忙給小弟解釋一下這首詩