一、指針相關
*p++,由於++和*同優先級,結合方向自右而左,等價於*(p++)。
*(p++)與*(++p)作用不同。若p的初值爲a,則*(p++)等價a[0],*(++p)等價a[1]。
(*p)++表示p所指向的元素值加1。
如果p當前指向a數組中的第i個元素,則
*(p--)相當於a[i--];
*(++p)相當於a[++i];
*(--p)相當於a[--i];
二、輸入
輸入字符的格式與要求不一致。
在用“%c”格式輸入字符時,“空格字符”和“轉義字符”都作爲有效字符輸入。
scanf("%c%c%c",&c1,&c2,&c3);
如輸入a b c,字符“a”送給c1,字符“ ”送給c2,字符“b”送給c3,因爲%c只要求讀入一個字符,後面不需要用空格作爲兩個字符的間隔。
三、變量定義
1、定義數組時誤用變量。
int n;
scanf("%d",&n);
int a[n];
數組名後用方括號括起來的是常量表達式,可以包括常量和符號常量。即C不允許對數組的大小作動態定義