C語言知識總結(近期筆試遇到的,銳捷,多米)
1. argv 最後一個元素是空指針! 比如ls -l remind 分別是argv[0] argv[1] argv[2] argv[3]為空指針
2. strcpy(char *s1,const char *s2)將s2中的字符復制到s1中直到s2遇到第一個空字符為止,並且s2的結束字符也復制進去了!!!
3. char 分為unsigned 無符號與有符號,int 4 float 4 double 8 short 2
4.
struct {
int i;
char c;
enum suit{one,two,three,five,aaa};//這裡定義了變量‘;’前面加上a
char cc;
}node;
其中枚舉是不占空間的,這裡有沒有枚舉sizeof(node)結果都是8,但是如果enum定義了變量a,那麼將增加8字節
但是單獨sizeof(suit)的結果是4;
如果是聯合union,那麼要算聯合裡面單個最大字節的那個;如果第一次給它賦值後再給它賦值,那麼先前的值就不存在了!比如union裡面有int,float,double,給double,然後給int,那麼double就不存在了,輸出不確定的值。
5.以防包含重復的頭文件,還可以用#pragma + 命令 表示只執行一次
#ifndef _MAIN_
#define _MAIN_
#endif
6.函數指針
int (*funArr[10])(float, char, char)
int result2 =(*funArr[0]) (12, 'a', 'b')
這是定義一個數組10個成員,每個成員是一個函數指針,參數為float,char,char,返回為int
7.對於整數數組可以通過sizeof(arr)/sizeof(int)來計算個數,字符串直接判斷結尾字符即可
8.0的ASCII對應的是48,A對應的是65,a對應的是97,這個要牢記
9.局部變量與全局變量,局部變量所在的范圍內會覆蓋全局變量
10.cin使用空白來定字符串的界(空格,制表符,換行符),也就是只會讀取第一個單詞,遇到空白就結束。所以需要使用面向行的類成員函數,getline(),裡面參數是數組名,數組長度。通過回車符判斷輸入結束。
11.結構中的位字段
struct {
unsigned int age:4; //低4位
unsigned int in:4; //接著4位
bool ismax:1;
};
這樣可以節約空間。
12.指針一定要在解引用之前給一個確定的地址。
13.引用本身不占空間
C++ Primer Plus 第6版 中文版 清晰有書簽PDF+源代碼 http://www.linuxidc.com/Linux/2014-05/101227.htm
讀C++ Primer 之構造函數陷阱 http://www.linuxidc.com/Linux/2011-08/40176.htm
讀C++ Primer 之智能指針 http://www.linuxidc.com/Linux/2011-08/40177.htm
讀C++ Primer 之句柄類 http://www.linuxidc.com/Linux/2011-08/40175.htm
將C語言梳理一下,分布在以下10個章節中: