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