1.帶有*的變數型別的標準寫法,變數型別* 變數名。
2.任何型別都可以帶上*,加上*以後是新的型別。
3.*可以是任意多個。
4.不管原來什麼型別,只要帶*,不管幾個*,就是指標,通用占用4個位元組。
5.指標賦值必須前後一樣,「完整寫法」int* x = (int *)6。
6.帶*型別的變數可以加、減乙個整數,但是不能乘或者除。
7.帶*型別變數與其他整數相加或者相減時:
帶*型別變數 + n = 帶*型別變數+ n*(去掉乙個*後型別的寬度)。
帶*型別變數 - n = 帶*型別變數- n*(去掉乙個*後型別的寬度)。
8.兩個型別相同的帶*型別的變數可以進行減法操作。
9.相減的結果要除以去電乙個*的資料寬度。
10.帶*的變數,如果型別相同,可以做大小的比較。
11.&可以對任意變數使用,使用後,型別變為:*+原變數。
12.*只能用在原來就帶有*的變數。
13.指標定義的字串儲存在常量區,不能修改!!想修改必須定義陣列。
錯誤:char *p = "abc",嘗試修改字串的值。
正確:char p = "abc",可以使用指標任意修改,因為儲存在棧。
14.指標函式:就是乙個函式,只是返回值是指標。
15.指標陣列:就是乙個陣列,只不過裡面存的都是指標。
16.結構體指標:
17:*p == *(p+0) == p[0] == *(p+i) == p[i];
18.在編譯器眼中,指標可以用*取值,也可以用來取值。
19.*(p+i) = p[i];
*(*(p+i)+k) = p[i][k];
*(*(*(p+i)+k)+m) = p[i][k][m];
*(*(*(*(p+i)+k)+m)+t) = p[i][k][m][t];
*()可以與相互轉換。
int *ptr = null;
ptr = (int *)malloc(sizeof(int)*128);
if(ptr != null)memset(ptr,0,sizeof(int)*128);
*ptr = 1;
free(ptr);
ptr = null;
小知識 指標
定義乙個指標 變數型別 變數名 int p 指標變數只能用來儲存位址!int p int a 90 p a p指向了a p 10 p指向了a位址對應的儲存空間!例 從main函式裡改變乙個變數的值!includevoid change int p main int i 20 change i pri...
C C 指標 引用相關小知識
在乙個變數前面加上 就表示變數的位址。指標實際上是表示記憶體位址的乙個整數,它是乙個unsigned型別的整數。在c語言中,陣列名也可以作為陣列的首位址使用。使用指標變數作為函式引數 指標型別也可以作為函式引數對的型別,這時視為把變數的位址傳入函式。如果在函式中對這個位址中的元素進行改變,原先的資料...
python小知識 Python小知識
1 python是一種解釋性語言,當程式執行時,一行一行的解釋,並執行 優點 除錯 很方便,開發效率高,並且可以跨平台 不但入門容易,而且將來深入下去,可以編寫那些非常非常複雜的程式。缺點 執行速度慢。python的種類 cpython ipython pypy jython ironpython ...