C語言符號
註釋
使用/* */ 中不能嵌套
註釋在編譯過程中用空格代替
接續符
C語言的代碼無法換行,使用接續符將每一行連接起來。
接續符 \
編譯器會將\剔除,跟在\ 後面的字符自動解放到前一行
\之後不能有空格 ,\的下一行之前也不能有空格
單引號,雙引號
int main() { char *p1 =1; char *p2='1'; char *p3="1"; printf("%s,%s,%s",p1,p2,p3); return 0; }
p1指針指向的是內存地址爲1的地方,系統會將0之後靠前的區域保留,用來判斷是否是一些有效的指針(不能爲null,不能小於一定的值),1無法訪問。
p2指針指向的是內存地址爲0x32的地方,同p1指針一樣,因爲 單引號‘ ' 實質還是數值
p3指針指向的字符串常量區的某塊存儲字符串"1"的空間 ,存儲的是‘1’和‘\0’,能夠訪問
char c = " ";
while(c == " ")
不會執行 循環體裏面的內容,因爲char類型 c實質是一個數值‘ ’。 不能和地址" "進行比較。
邏輯運算符
&& 和|| 的短路
i= 1 , j=0;#include <stdio.h> int main() { int i = 0 ; j= 0; if(++i || ++j) { printf("i:%d j:%d",i,j); } return 0; }
三目運算符
int i= 10 , j=20 *(i<j?&i:&j)=i>j?i:j; printf("%d %d",i,j); return 0;
++ -- 貪心法
編譯器會根據貪心法識別運算符
int i =1;
int j = ++i+++i+++i;
會被解析爲:++i ->i++ -> +i -> i++ -> +i
int i =1 ,j =2;
int k = i+++j;
i++ +j
給運算符加括號能使運算結構更加清晰,避免優先級的困擾。