有關C 中指標問題,高手請進急

2023-01-21 16:55:34 字數 3956 閱讀 2927

1樓:小子神奇

#include

using namespace std;

void change(int*,int*)int main()

void change(*m,*n)

2樓:匿名使用者

小到大:

int main()

if (*pb>*pc)

if (*pa>*pb)

printf("%d%d%d",a,b,c);

system("pause");

return 0;

}大到小:

int main()

if (*pb<*pc)

if (*pa<*pb)

printf("%d%d%d",a,b,c);

system("pause");

return 0;}

3樓:井鈺

很簡單的題,不想專門寫了,給你個之前給別人寫的把是實現由使用者輸入元素的數目並且從小到大排列的,我想再加個從大到小,你也應該會把,道理都是一樣的,我就不再寫了,把程式給你你自己參考著再寫下由大到小的把,至於你說的只輸入三個數我之前,別人是要求輸入任意的元素個數的,所以是用動態申請陣列的程式**如下:

#include

using namespace std;

void main()

for(i=0;i*(p+j+1)) }} //輸出陣列元素,都一樣了,如果樓主不滿意,我再改下把for(i=0;i

cout<

cout<

delete p;//這是一個習慣,記得,new必須與delete成對出現,否則會使記憶體不被釋放的情況出現}

4樓:匿名使用者

c還是c++,說清楚

5樓:匿名使用者

c語言還是c++語言?

c++問題,高手請進!!

6樓:匿名使用者

cout << (int)a;//c語言裡,對這句的處理相當於下面.

fld dword ptr _a$[ebp]//將a對應資料存入浮點數棧

call __ftol//呼叫ftol()函式,將a轉換成long型(long int都佔32位.)

push eax//將轉化後的long型數入棧

……//下面省去了,是呼叫cout物件的「<<」方法

cout << (int&)a;//這句的解釋如下

mov eax, dword ptr _a$[ebp]//將a的資料調入暫存器

push eax//a的資料壓入棧,以便呼叫輸出。

所以(int)a,是強制轉換為int型,中間要呼叫轉換函式。

(int &)a,是強制轉換為int型的引用,也就是直接引用其記憶體。

a記憶體數的表示為:0x3f800000,即1065353216,表示浮點數0.1(為什麼0x3f800000,表示0.1,你可以參考一下ieee754的說明.)

b記憶體數的表示為:0x00000000.

剩下的你自己理解吧.

//第二個檔案,我幫你改了一下,可以了

#include

using namespace std;

class abc

~abc()

}; void del(abc *pobj)

void main()//一些空格無法被識別,刪掉後就可以了。

7樓:

第一個問題:

因為浮點數在記憶體中的存放方式為:符號+小數部分+指數,cout<<(int&)b就是把b在記憶體中的二進位制數以整數輸出

第二個問題應該寫成del寫成delete,就可以輸出了

8樓:手機使用者

(1)(int&)a----等價於*(int*)a

(2)少了return 0 ;

解構函式return時系統呼叫,你這個程式應該通不過編譯的...

9樓:風和同

(int&)a表示「a」的地址,輸出的是記憶體中的地址1065353216??

~abc是解構函式,當然不會輸出啦,如果你沒有用new動態申請記憶體的話,解構函式可有可無。

希望你明白了

因為加了「()」,就不是引用了,在解構函式裡面寫上輸出語句才可以輸出資訊的,delete是正確的清理記憶體的語句,所以可以。

你用cout << (int)b << endl; 語句強制把b轉換為整形了,你想,小數變為整數,不是0是什麼

解構函式裡面用到delete,怎末能說delete裡面含有解構函式呢。

cout << (int)b << endl;

cout << (int&)b << endl;//(int&)b為什麼是0??

上面你認真分析看,cout << (int)b << endl; 這條語句是在前面,在執行cout << (int&)b << endl;之前就已經轉換了啊

10樓:匿名使用者

第一部分是從

找的

(int&)a 不經過轉換, 直接得到a在記憶體單元的值(int)a a在記憶體中的值轉換成int型別float型別在記憶體中儲存的形式是 ,符號位 指數 尾數由754標準:階碼採用增碼(該數補碼的反符號),尾數採用原碼所以1.0f 在記憶體中的形式為

0011 1111 1000 0000 0000 0000 0000 0000

所以輸出的是 0x3f800000

0 在記憶體中的的儲存形式

0000 0000 0000 0000 0000 0000 0000 0000

(int&)a 把a強制轉換成整形引用型別(int)&a 把a的地址強制轉換成整型

不過最好不要(int)&a

這是我寫的

class abc; //前向宣告

void del(abc* pobj)

//到這裡abc還只是一個不完全型別,只能以有限的方式使用//故你在函式中的delete操作雖然成功,但卻導致找不到解構函式class abc

解決方法

#include

class abc

~abc()

}; void del(abc* pobj)int main()

c++高手請進,有個問題指教一下

11樓:莪蘿莉控

定義類時要加上template

以後每次定義函式之前都要加上這句話。而且

定義函式時要這麼定義

返回型別 類名《t》::函式名(引數){}實在搞不好找我我這裡有源**可以發給你

12樓:匿名使用者

你可以在類中直接

nodedel;

然後初始化del

如果要在例項類地時候只能t,要在類地前面加template你只在結構體宣告前加是不行的,每次宣告一個型別都要加這句話template

class link

{。。。。。。

13樓:匿名使用者

使用內嵌類來處理,如下:將node作為link的私有成員類。

#include

using namespace std;

template

class link

//建構函式,其它函式一樣可以定義

};public:

link(){}

~link(){}

private:

node*next;

};int main()

14樓:匿名使用者

好像在vs裡面模版類的函式原型和申明要放在同一個檔案裡面才行,否者會出錯

C 中指標符號問題,在C 中,指標中, 符號有什麼用?應該怎麼用,謝謝了,我是初學者。

1.n p 有兩個可能。首先,class nint main 然後再一個可能就是n乘以p。2.n p表示什麼意思 n p就是取p的地址賦值給指標nn p的意思是取p的地址給n變數注意指標變數只能初始化,不能賦值給他。也就是說int p int n p 是可以的。但是分開來就是不對的了。如果你是新手的...

急,感情問題,高手請進,感情問題,高手請進

能看的出你是個挺重感情的女孩,但是不要太在意敏感了,這樣會讓你很累的,你們才認識沒多久,就這麼累的話,以後的相處怎麼辦呢?另外建議你多對對方瞭解一點,也在心裡想一想,他這樣的性格你是否能夠接受,是否願意接受,以後會不會因此出現問題,這些在你做出決定之前都是應該考慮的,而且恕我直言,你應該側面瞭解一下...

電腦問題 急,高手請進,電腦問題 高手請進!!急急急急急急急 !

看看這個對你有沒有幫助 award bios 1短 系統正常啟動。你的機器沒有任何問題。2短 常規錯誤,請進入cmos setup,重新設定不正確的選項。1長1短 ram或主機板出錯。換一條記憶體試試,若還是不行,只好更換主機板。1長2短 顯示器或顯示卡錯誤。1長3短 鍵盤控制器錯誤。檢查主機板。1...