指標的分類
1. 按指向的物件劃分
整型指標、浮點指標、字元指標、陣列指標、指標陣列、結構體指標、函式指標等。
int *p_int;
float *p_float;
char *p_char;
char (*p_array)[2]; // 陣列指標
char *p_parray[2]; // 指標陣列
char (*p_func)(int);
2. 按指標的多級性劃分
單級間指、二級間指、**間指等。
int *p_int1; //單級
int **p_int2; //兩級
int ***p_int3; //**
3. 按指標定以後是否可變劃分
常量指標,可變指標。
int i_int; // 整型變數
int *p_int; // 指標變數
const int *p_int2 = &i_int; // 指標可變,所指內容不能變。
int const *p_int3 = &i_int; // 指標可變,所指內容不能變。
int *const p_int4 = &i_int; // 指標不可變,所指內容可變。
const int *const p_int5 = &i_int; // 指標不可變,所指內容不可變。
個人理解:關鍵字const優先匹配其前面的資料型別,如果前面沒有,則優先匹配後面第乙個資料型別。
例如:int const *p; 優先匹配int,因此資料內容不可變,但指標*沒被修飾,可變。
const int *p; 優先匹配int,資料內容不可變,指標可變。
int* const p; 優先匹配*,指標不可變,資料內容可變。
const int* cosnt p; 第乙個const修飾int,第二個const修飾*,資料內容和指標都不可變。
另外:int (*p_array)[2]; 因為有括號,*修飾p_array,int只好修飾這個陣列,即p_array是乙個指向陣列的指標。即陣列指標
int *p_parray[2]; 沒有括號,*修飾int,說明是乙個整形指標,然後修飾陣列array,說明這個陣列裡的每個元素都是乙個指標。即指標陣列。
此外:指標常量與常量指標,和 陣列指標與指標陣列一樣繞口。
理解方式:指標在前面不可變,在後面可變
指標常量:即指標不可變,資料內容可變。
常量指標:指標可變,資料內容不可變。
指標以及指標的分類
指標就是有指向的變數,它指向的是和儲存指標本身型別相同的變數的空間,指標有多級指標,以及指標直接指向變數存放空間,二級指標指向的是存放同型別一級指標的空間,多級類推二級指向一級一樣指向它的前一級指標存放空間,下面在介紹指標的分類之前我簡單的通過畫圖展示一下指標和變數之間 指標和指標之間的指向關係 在...
指標學習日記 指標分類
陣列名取位址 1,跳過整個陣列 a 1 int a 3 4 printf p a 1 跳過48個位元組 printf p a 1 跳過16個位元組 printf p a 0 1 跳過16個位元組 printf p a 0 1 跳過4個位元組 printf p a 0 0 1 跳過4個位元組 3 陣列...
分類常用的評價指標
accuracy number of correct predictions total number of predictions 對於二元分類,也可以根據正類別和負類別按如下方式計算準確率 accuracy tp tn tp fp tn fn 其中,tp 真正例,tn 真負例,fp 假正例,fn...