c++與c#,02-05 從c到c++

 2023-11-09 阅读 26 评论 0

摘要:1. bool 布爾類型變量true表示1;但是把string(4字節)轉化為bool(1字節),會截斷,舉個例子: bool result = true; print result; (答案:1) c++與c#。bool result = true; result = 100; print result; (答

1. bool

布爾類型變量true表示1;但是把string(4字節)轉化為bool(1字節),會截斷,舉個例子:

bool result = true;

print result;

(答案:1)

c++與c#。bool result = true;

result = 100;

print result;

(答案: 1,因為截斷只保留1字節)

2. const

const定義時,常量必須初始化: const int a; (wrong)? const int a = 100; (right)

程序char c[5]?const不能被更改,即不能重新被賦值, 舉個例子:

const int a = 100;

a = 200; (錯誤,因為a是const,不能被更改)

const int *p; // const在*左邊,表示指針所指向的變量是個const

p = &a;

*p = 200;(錯誤, 因為*p指向的a是個const,不能被更改)

f到c、int b = 5;

*p = 10;(錯誤,因為*p自己是個const,不能被更改)

int * const p2;? // Error: p2為一個常量,常量定義的時候必須初始化。且初始化之后不能再重新指向了(因為它自己是個const),比如:

int * const p2 = b;

p2 = &a;? // Error, 因為p2是個常量,常量不能被更改,即不能重新賦值

但*p2可以被重新賦值,因為它的類型是int (比如*p2=200, 正確)

c++是什么,3. 宏

高級編程:盡量用const替換#define,底層編程相反。

泛型編程本質:替換

4. 內存對齊

優點:性能考慮,對齊的數據上訪問會很快(cpu訪問效率提高)

如何對齊:略

c和c++哪個難,5. new與delete

new: 創建堆空間(類似c malloc), 成功則返回首地址(else 直接拋出異常,因此一版失敗,不進行NULL指針的判斷!!!)

delete: 銷毀堆上空間

delete數組如果不帶中括號,那么銷毀的空間是不確定的,例如:

new *p = new int; (new *p = new int(5) //初始化一個元素:5;但數組是沒有辦法初始化的,如需要,for循環語句初始化)

new *p2 = new int[10];

c語言程序設計第二章課后答案、delete p;

delete [] p2;

new一個對象會做兩件事情:step a.分配內存 step b. 調用構造函數

?

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/169457.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息