1. 關(guān)于const用法 const int a 和 int const a是一樣的 const int *a 意味著a是指向一個(gè)常整型數(shù)的指針(也就是說整型數(shù)是不可修改的,但是指針可以) int *const a 意思是a是一個(gè)指向整型數(shù)的常指針(也就是說指針指向的整型數(shù)是可以修改的,但是指針是不可以修改的) int const *a const 意思是a是一個(gè)指向常整數(shù)的常指針(也就是說整數(shù)和指針都不可一修改) 2. 一些容易混淆的定義 一個(gè)整型數(shù) int a 一個(gè)指向整型數(shù)的指針 int *a 一個(gè)指向指針的指針,他指向的指針是一個(gè)整型數(shù) int **a 一個(gè)有十個(gè)整型數(shù)的數(shù)組 int a[10] 一個(gè)有十個(gè)指針的數(shù)組,該指針是一個(gè)指向整型數(shù)的 int *a[10] 一個(gè)指向十個(gè)整型數(shù)數(shù)組的指針 int (*a)[10] 一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù) int (*a)(int) 一個(gè)有十個(gè)指針的數(shù)組,該指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型 int (*a[10])(int) 3. 關(guān)鍵字static的作用 在函數(shù)體內(nèi),一個(gè)被申明為static的變量在該函數(shù)被調(diào)用過程中保持其值不變 在模塊內(nèi)(函數(shù)體外),一個(gè)被申明為static的變量可以被模塊內(nèi)的函數(shù)訪問,但不能被模塊外的函數(shù)訪問。他是一個(gè)本地的全局變量。 在模塊內(nèi),一個(gè)被申明為static的函數(shù)只可以被被這一模塊內(nèi)的函數(shù)調(diào)用。就是說這個(gè)函數(shù)被限制在這個(gè)模塊內(nèi)部本地使用。 4.一個(gè)常用的位操作 給一個(gè)整型數(shù)a,寫兩段代碼,第一個(gè)設(shè)置a的bit 3,另一個(gè)清除a的bit 3 #define BIT3 (0x1<<3) static int a; void set_bit3(void ){ a |= BIT3; } void clear_bit3(void){ a &= ~BIT3; } 5.修改內(nèi)存某處的值 要求設(shè)置一內(nèi)存絕對地址為0x67a9的值為0xaa66 注:將一整型數(shù)強(qiáng)制轉(zhuǎn)換為指針是合法的! |
|