指標簡單用法

2022-07-15 23:03:20 字數 2102 閱讀 7772

1、指標型別:對編譯器來說,通過指標型別獲取指標所指型別資料長度,一次確定指標單位增量。

3、void指標可以和任何型別性指標相互賦值而不需要強制型別轉化

4、++與*優先順序相同,右結合。運算子出現在變數同側,由內之外結合

*p++同*(p++)位址加

(*p)++所指元素加

4、指向「一維陣列」的指標宣告,求值,引數傳遞,用來處理二維陣列

void firstllr(float *gauss_out, float(*llr)[m+1

])

}

5、指標陣列與二重指標

char *string;

char **p;

p=string;

我喜歡畫乙個三列的**第一列師二重指標,第二列是每乙個陣列名指標,第三列是陣列元素

typedef char* string

;string list = ;

for(string *p = list;*p != null;p++)//o'reilly著c程式設計新思維,人民郵電出版社p118

二維陣列也可以處理,ij代表行列,不過比較煩

const uint8 code keypad_chars[12][6] =;

uint8 (*keycodemap)[6] =keypad_chars;

if(*(*(keycodemap + 3*i + j)) == '

#')

處理動態分配的二維陣列

void *alloc_2d(int data_size, int row, int

col)

for (i = 0; i < row; i++)

free(p);//

乙個陣列不成,釋放所有陣列,釋放指標陣列

printf("

fail to malloc nod -- col:%d,rol:%d

", j, i);

exit(1);}}

}

6、函式指標

定義

double(*a_fn_type)(int, int);//

定義了乙個有兩個引數,返回double型別的名字叫做 a_fn_type的指標---宣告

a_fn_type(i,j);//

與(*a_fn_type)(i,j);通用---呼叫

在函式宣告基礎上新增(*),括號優先順序大於*,函式名變為指標型別宣告,主調函式只提供函式入口(函式名,函式名也是指標),函式引數在被調函式用指標時傳入。

void printbitree(bitree bt, void(*p)(int16_t, int16_t, float(*)[m+1]), float (*llr)[m+1] )     

}

typedef double(*a_fn_type)(int, int

);b)//o'reilly著c程式設計新思維,人民郵電出版社p119

//typedef不懂去看k&r有講解

7、函式指標陣列

指標陣列代替列舉,函式指標陣列代替乙個乙個函式,對於選擇switch case顯得優化,程式引用c語言程式設計思想方法,尹寶林著

#define numberof(x) (sizeof(x) / sizeof(x[0]))//

求陣列元素個數

char *func_name = ;//

指標陣列

double(*const func_tab)(double) = ;//

與指標陣列次序對應的函式指標陣列,引數多的可以//啞元

int find_func(char *s)

return -1;}

intmain()

//下面shi上邊兩個函式的另一種寫法

typedef double(*fp)(double

) ;fp find_func(

char *s)

return

null;

}int

main()

draw_func(f);

}

詳細解釋

mysql的簡單用法 mysql簡單用法

刪除使用者 drop user jack drop比delete刪除的優勢在於drop可以刪除使用者的許可權,更加徹底 更改使用者名稱 rename user jack to jacknew 使用者的都存在與user表中,更改名稱,許可權不變 更改使用者密碼 update mysql.user se...

oracle cursor 簡單用法

procedure changespecialdiscount compid in invarchar2 ccid in invarchar2 cono in invarchar2 is sum cc all number 14 4 0 wsp disc number 14 4 wspcl disc...

Oracle Trigger簡單用法

1.trigger 是自動提交的,不用commit,rollback 2.trigger最大為32k,如果有複雜的應用可以通過在trigger裡呼叫procedure或function來實現。3.語法 create or replace trigger on declare begin except...