C C 程式設計中的一些概念問題

2021-05-28 11:09:44 字數 972 閱讀 2854

1.下面的**會有問題嗎?

char* ptr = null;

printf("%s\n", ptr);

free(ptr);

查資料發現當ptr=null時free()函式是不做記憶體釋放的,所以上面的程式不會出錯。至於printf("%s\n", ptr);利用vs2008編譯器輸出的是(null),不知道其它編譯器輸出什麼。

2.變數前的兩個冒號(::)

int x = 5;

int main(int argc, char* argv){

int x = 3;

std::cout<3. win32平台下的微軟c編譯器(cl.exe for 80×86)的對齊策略:

1) 結構體變數的首位址能夠被其最寬基本型別成員的大小所整除;

2) 結構體每個成員相對於結構體首位址的偏移量(offset)都是成員大小的整數倍,如有需要編譯器會在成員之間加上填充位元組(internal adding);

3) 結構體的總大小為結構體最寬基本型別成員大小的整數倍,如有需要,編譯器會在最末乙個成員之後加上填充位元組(trailing padding)。

出處:4. sizeof(testclasssize)的輸出結果?

class testclasssize{

public:

virtual void fun(void){cout<<"fun"5.列印出當前原始檔的檔名以及原始檔的當前行號

cout << __file__ ;

cout<<__line__ ;

__file__和__line__是系統預定義巨集,這種巨集並不是在某個檔案中定義的,而是由編譯器定義的。

6.判斷程式是否由c++編譯程式編譯的

#ifdef __cplusplus

//doing something

#endif

一些程式設計中遇到的概念回顧

第一課 1.淺拷貝 淺轉殖 淺拷貝,將物件中的所有字段複製到新的物件 副本 中。其中,值型別欄位的值被複製到副本中後,在副本中的修改不會影響到源物件對應的值。而引用型別的字段被複製到副本中的還是引用型別的引用,而不是引用的物件,在副本中對引用型別的字段值做修改會影響到源物件本身。淺拷貝簡單歸納就是只...

C C 中的一些排序

最近看到些關於c c 排序的一些 自己以前也沒有怎麼學習過這些,正好這次有時間來好好看看。排序分為內部排序和外部排序。內部排序 待排序的內容放在計算機隨機儲存器中進行排序的過程 外部排序 排序中要對外儲存器進行訪問的排序過程。內部排序 插入排序,交換排序,選擇排序,歸併排序,基數排序。主程式 1.插...

攝影中的一些概念

1 什麼叫色別 色別是用以說明彩色和消色的區別。2 什麼叫明度 明度又叫明暗度,是顏色的深淺,也可以說它的明亮程度。3 色調的含義 色調是指顏色的性質即一張 中一定範圍的明亮程度 也稱明暗值 4 什麼叫色彩的飽和度 色彩的飽和度,就是顏色色調的可見程度,也稱色的純度。是指顏色純淨和鮮明的程度。某種顏...