杂记4
0. switch
? switch()這個括號里面的數(shù)據(jù)必須是整型值
1. goto 語句使用形式
? flag:....
??????? ......;
......
goto flag;
這里需要注意的一點是,goto語句只能放在本函數(shù)內(nèi)使用,不能跳轉(zhuǎn)到其他的函數(shù)中去。
2. EOF
? 文件結(jié)束標(biāo)志,請看下面的一小段代碼
?
#include<stdio.h>
#include<windows.h>int main()
{char ch = 0;while ((ch = getchar()) != EOF)putchar(ch);system("pause");return 0;
}
這段代碼的作用是,每次輸入一個字符,打印一個字符,輸入一段字符打印一段字符,直到輸入EOF時程序結(jié)束,這里的EOF是通過鍵盤的Ctrl+Z結(jié)束的
這里注意的一個點就是使用getchar(ch),來獲取一個字符的時候,這里的ch盡量定義成int類型的。
3. fflush
getchar函數(shù)會從緩沖區(qū)中讀取信息,但是我們有時候是不需要緩沖區(qū)中剩余的信息的,比如我們在上次輸入完成后,輸入一個字符之后,需要按一個回車,這時前一個字符被拿走,但是緩沖區(qū)中還有回車這個字符,在下次輸入的時候很容易就出現(xiàn)錯誤,為了防止這個問題我們可以使用fflush()這個函數(shù),用來清空緩沖區(qū)。這里使用fflush時使用fflush(stdin),表示刷新輸入設(shè)備,fflush(stdout),表示刷新輸出設(shè)備
4. C++閃退
直接在代碼return 0;語句之前加上system("pause");不需要引頭文件#include<windows.h>
5.類實例化對象內(nèi)存問題
在C++ 中用類實例化一個對象之后,這個對象開辟的存儲空間的方式也是按照C語言中結(jié)構(gòu)體的方式進(jìn)行的,如果類中或者結(jié)構(gòu)體中沒有定義任何變量,則這個空間的大小是1
6.類體外定義類的成員函數(shù)
在類體外定義類的成員函數(shù)時注意,比如我這里有一個Complex類,這里在類體內(nèi)聲明了一個void show();函數(shù),然后我在類體外實現(xiàn)的時候需要使用void complex::show(){.....},這里需要強(qiáng)調(diào)的一點就是,在類體外定義函數(shù)的時候需要把類的返回值類型放在前面。容易出錯的一個點就是,如果我們的返回值類型就是一個類的對象,比如類體內(nèi)聲明了一個函數(shù),Complex Setdata();,然后我在類體外實現(xiàn)的時候需要使用下面的方式Complex Complex::Setdata(){......},第一個Complex是函數(shù)的返回值類型,第二個Complex是聲明類域。
7.不能重載的運算符
? C++中不能重載的運算符有.*/sizeof/?:/::/.?? 這五個運算符不能重載
8. 在c++代碼中使用new與delete和new[]與delete[]的時候要成對的出現(xiàn)
9. 全局變量和靜態(tài)變量
?全局變量是定義在任何函數(shù)之外的變量,它的作用是全局的,直到函數(shù)結(jié)束后消失,另外它的鏈接屬性是可以被其他的源文件使用,只需要在其他的源文件中使用extern ..之后其他的源文件就可以使用它了。如果是靜態(tài)全局變量,它的鏈接屬性就改變了,它只能被本源文件使用,而不能被其他的源文件使用,即使使用extern也不行。而局部變量只能在本函數(shù)中使用,出了這個函數(shù),這個變量就自動的消失了,但是靜態(tài)的局部變量的作用域是本函數(shù)中使用,但是它不會消失,直到下次程序進(jìn)來這個變量還保留著原來的值,直到整個程序退出。
總結(jié)
- 上一篇: 结构和联合--结构体内存和位段内存开辟规
- 下一篇: 谁来给我解释下冯小刚回张泉灵的那个梗~我