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. 調用構造函數
?
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态