前置++和後置++:ide
int a = 10; int b = a++; printf("a = %d b = %d\n", a, b);
++運算符分爲後置++和前置++,兩者所區別之處並不在與自增的變量,而在於自增變量所要賦值的對象。
以上面的代碼舉例,當運行結束以後所獲得的的a和b的結果做比較
運行結果
a = 11 b = 10
很明顯b的值是在a自增前所賦值上的,因此後置++能夠總結出一句話:先使用,在自增。
前置++則和後置相反,所奉行的是「先自增,在使用」。函數
int a = 10; int b = ++a; printf("a = %d b = %d\n", a, b);
因此,以上的這個代碼所獲得的運行結果即是 a = 11 ,b = 11;code
條件操做符
條件操做符
表達式1 ? 表達式2 : 表達式3;
若是表達式1爲真,則表達式2就是整個代;若表達式爲假,則表達式3就是這行代碼的所有對象
int main() { int a, b; scanf("%d%d",&a,&b); int max = 0; max = (a > b ? a : b); printf("%d\n",max); }
若a>b爲真,則max = a;若爲假,max = b;
struct - 結構體關鍵字
typedef - 類型定義 - 類型重定義 - 能夠從新定義類型 ,例如 typeef unsigned int u_int 意思爲將unsigned int 重定義爲 u_int
即便得 unsigned int num = 20; 與 u_int num = 20;等價生命週期
static - 修飾局部變量,當static局部變量的時候,局部變量的生命週期變長了;修飾全局變量時,改變的時全局變量做用域,讓靜態的全局變量只能在本身所在的源文件內部使用;
static修飾的函數改變了函數的連接屬性,則其餘源文件就不能訪問這個函數,使得這個函數的外部連接屬性-->內部連接屬性
struct - 結構體關鍵字
typedef - 類型定義 - 類型重定義 - 能夠從新定義類型 ,例如 typeef unsigned int u_int 意思爲將unsigned int 重定義爲 u_int
即便得 unsigned int num = 20; 與 u_int num = 20;等價作用域
static - 修飾局部變量,當static局部變量的時候,局部變量的生命週期變長了;修飾全局變量時,改變的時全局變量做用域,讓靜態的全局變量只能在本身所在的源文件內部使用;
static修飾的函數改變了函數的連接屬性,則其餘源文件就不能訪問這個函數,使得這個函數的外部連接屬性-->內部連接屬性
struct - 結構體關鍵字
typedef - 類型定義 - 類型重定義 - 能夠從新定義類型 ,例如 typeef unsigned int u_int 意思爲將unsigned int 重定義爲 u_int
即便得 unsigned int num = 20; 與 u_int num = 20;等價it
static關鍵字
當static修飾局部變量時,局部變量的生命週期變長了;修飾全局變量時,改變的時全局變量做用域,讓靜態的全局變量只能在本身所在的源文件內部使用;
static修飾的函數改變了函數的連接屬性,則其餘源文件就不能訪問這個函數,使得這個函數的外部連接屬性-->內部連接屬性class