一、關於typedef與#define的相似之處
例如:typedef int count;
#define count int
作用:都是用count代表int,但事實上,二者是不同的。#define是在預編譯時處理的,只能作簡單的字串替換,而typedef是在編譯時處理的,並不是作簡單的字串替換,而是宣告乙個型別。
二、有關整型的資料型別含義
資料型別
含義int p;
定義整型變數p
int *p;
p為指向整型資料的指標變數
int p[n];
定義整型陣列p,它有n個元素
int *p[n];
定義指標陣列p,它由n個指向整型資料的指標元素組成
int (*p)[n];
p為指向含n個元素的一維陣列的指標變數
int p();
p為帶回整型函式值的函式
int *p();
p為帶回乙個指標的函式,該指標指向整型資料
int (*p)();
p為指向函式的指標,該函式返回乙個整型值
int **p;
p是乙個指標變數,它指向乙個指向整型資料的指標變數
三、有關二維陣列表示式的含義
表示式含義a
二維陣列名,指向一維陣列a[0],即0行首位址
a[0]、*(a+0)、*a
0行0列元素位址
a+1、&a[1]
1行首位址
a[1]、*(a+1)+2、&a[1][2]
1行2列元素a[1][2]的位址
*(a[1]+2)、*(*(a+1)+2)、a[1][2]
1行2列元素a[1][2]的值
四、變數命名的規則
(1)編譯系統將大寫和小寫字母認為是兩個不同的字元
(2)建議變數名的長度最好不要超過8個字元
(3)在選擇變數名和其他識別符號時,應做到「見名知意」,即選有含義的英文單詞(或其縮寫)作識別符號
(4)要求對所有用到的變數作強制定義,就是「先定義。後使用」
五、c語言運算子優先順序
優先順序
運算子
名稱或含義
使用形式
結合方向
說明
1
陣列下標
陣列名[常量表示式]
左到右()
圓括號(表示式)/函式名(形參表)
.
成員選擇(物件)
物件.成員名
->
成員選擇(指標)
物件指標->成員名
2
-
負號運算子
-表示式
右到左
單目運算子
~
按位取反運算子
~表示式
++
自增運算子
++變數名/變數名++
--
自減運算子
--變數名/變數名--
*
取值運算子
*指標變數
&
取位址運算子
&變數名
!
邏輯非運算子
!表示式
(型別)
強制型別轉換
(資料型別)表示式
sizeof
長度運算子
sizeof(表示式)
3
/除
表示式/表示式
左到右雙目運算子
*乘
表示式*表示式
%
餘數(取模)
整型表示式%整型表示式
4
+加
表示式+表示式
左到右雙目運算子
-減
表示式-表示式
5
<<左移
變數《表示式
左到右雙目運算子
>>右移
變數》表示式
6
>大於
表示式》表示式
左到右雙目運算子
>=
大於等於
表示式》=表示式
<小於
表示式《表示式
<=
小於等於
表示式<=表示式
7
==等於
表示式==表示式
左到右雙目運算子
!=
不等於表示式!= 表示式
8
&
按位與表示式&表示式
左到右雙目運算子
9
^
按位異或
表示式^表示式
左到右雙目運算子
10
|
按位或表示式|表示式
左到右雙目運算子
11
&&
邏輯與表示式&&表示式
左到右雙目運算子
12
||
邏輯或表示式||表示式
左到右雙目運算子
13
?:
條件運算子
表示式1?
表示式2: 表示式3
右到左
三目運算子
14
=
賦值運算子
變數=表示式
右到左
/=
除后賦值
變數/=表示式
*=
乘後賦值
變數*=表示式
%=
取模後賦值
變數%=表示式
+=
加後賦值
變數+=表示式
-=
減後賦值
變數-=表示式
<<=
左移後賦值
變數<<=表示式
>>=
右移後賦值
變數》=表示式
&=
按位與後賦值
變數&=表示式
^=
按位異或後賦值
變數^=表示式
|=
按位或後賦值
變數|=表示式
15
,
逗號運算子
表示式,表示式,…
左到右注意:
同一優先順序的運算子,運算次序由結合方向所決定。
簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子
C語言注意事項
1 fgetc與fputc函式 fgetc函式從指定的文 件中讀乙個位元組 fputc 函式向指定的檔案寫乙個位元組 2 r 是回車,n 是換行,前者使游標到行首,後者使游標下移一格。c語言程式設計時 windows系統 r 就是return 回到 本行 行首 這就會把這一行以前的輸出 覆蓋掉 如 ...
c語言指標注意事項
這幾天對c語言的指標溫習了下,感覺理解又更深入了一步 c語言的精髓是指標我想確實一點都不錯,但是在使用的時候有很多要注意的地方,大概總結一下 1.指標指向常量區,是不能修改其值的 比如 char p abcfd char ptr abcfd p 1 c 此時會報錯,因為 abcfd 為常量區,其值是...
C 注意事項
include using namespace std class superclass virtual superclass virtual void dosomething const protected intitsage class subclass public superclass vo...