C語言基礎

由於保研機試,因此把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語言中有三種轉義字符,它們是:通常轉義字符、八進制轉義字符和十六進制轉義字符。

相關文章
相關標籤/搜索