由於保研機試,因此把C語言看了一下,原本自我感受良好,真的發現幾個很基礎對問題都不會。node
1.數組
typedef struct node { int x, y; } Node, *pNode;
這裏給struct node定義了別名 Node, 以前我都覺得 pNode 是 定義了一個 Node 類型對指針。。。如今才知道本身傻。spa
實際上應該是給 struct node * 定義了一個別名,叫 pNode。指針
2.code
關於字符數組:blog
char s[] = {'a', 'b', 'c', 'd'};
這裏定義了一個字符數組 s, 而且進行了初始化。可是 strlen (s) 的指是 5(gcc和VS運行結果可能不一樣!), sizeof (s) 的值是 5;編譯器
可是若是這樣定義:編譯
char s[] = "abcde";
這裏strlen (s) 的值應該是也是5, sizeof(s) 的值是6;table
sizeof的結果不一樣是由於前面對定義, 編譯器並不要求在最後加一個 '\0', 因此組對它應用strlen的時候,不一樣編譯器可能結果不一樣。class
而對於後者對定義方式,編譯器是要求組結尾加一個 '\0'。
3.
轉義字符
轉義字符 | 意義 | ASCII碼值(十進制) |
\a | 響鈴(BEL) | 007 |
\b | 退格(BS) ,將當前位置移到前一列 | 008 |
\f | 換頁(FF),將當前位置移到下頁開頭 | 012 |
\n | 換行(LF) ,將當前位置移到下一行開頭 | 010 |
\r | 回車(CR) ,將當前位置移到本行開頭 | 013 |
\t | 水平製表(HT) (跳到下一個TAB位置) | 009 |
\v | 垂直製表(VT) | 011 |
\\ | 表明一個反斜線字符''\' | 092 |
| | |
\' | 表明一個單引號(撇號)字符 | 039 |
\" | 表明一個雙引號字符 | 034 |
\0 | 空字符(NULL) | 000 |
\ddd | 1到3位八進制數所表明的任意字符 | 三位八進制 |
\xhh | 1到2位十六進制所表明的任意字符 | 二位十六進制 |
從表中能夠看出,在C語言中有三種轉義字符,它們是:通常轉義字符、八進制轉義字符和十六進制轉義字符。