C 多級指標

2021-07-06 07:18:47 字數 3128 閱讀 7926

可以認為,指標是c++這把寶劍最鋒利的部分,當然,如果你使用不當,也會傷到自己的

何為11級指標,其實,就是在指標前面加了11個*,加乙個*就是1級指標,加兩個*就是二級指標

char *********** qqptr = null;

指標和陣列有著扯不清的關係,這個11級指標,你可以理解為11維度的陣列,平日裡見得最多的恐怕也就是二維陣列了,11維,只能腦補了。如果qq號長度不夠10位,則在前面補0,那麼這個qq號的10位數字就可以用來做陣列的下角標了,最後的那個維度我們用來儲存密碼。

坦率的講,我腦子裡也對這個模型很是模糊,無法建立起乙個有效的概念,所以,還是直接上**吧,或許**比語言有更好的解釋效果:

#include using namespace std;

#define pointer_size 10

int chartoint(char ch)

char *********** qqptr = null;

void addqq(char *qq,char* pass)

if(strlen(qq)!=10)

int index[10];

for(int i =0;i<10;i++)

if(qqptr[index[0]]==null)

if(qqptr[index[0]][index[1]]==null)

if(qqptr[index[0]][index[1]][index[2]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]][index[9]]==null)

strcpy(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]][index[9]],pass);

}bool i***ist(char *qq)

if(strlen(qq)!=10)

int index[10];

for(int i =0;i<10;i++)

if(qqptr[index[0]]==null)

if(qqptr[index[0]][index[1]]==null)

if(qqptr[index[0]][index[1]][index[2]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]]==null)

if(qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]][index[9]]==null)

return true;

}char* getpass(char* qq)

if(strlen(qq)!=10)

if(!i***ist(qq))

int index[10];

for(int i =0;i<10;i++)

return qqptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]][index[9]];

}int main(){

qqptr = (char ***********)malloc(sizeof(char*)* pointer_size);

memset(qqptr, 0, sizeof(char*)* pointer_size);//清零

char *qq = "0381084992";

char *pass = "314krtqw";

addqq(qq,pass);

cout<

C 之 多級指標

多級指標 分析原則,從變數名處起,根據運算子優先順序結合,一步一步分析。int p 3 首先從p處開始,先與結合,因為其優先順序比 高,所以p是乙個陣列,然後再與 結合,說明陣列裡的元素是指標型別,然後再與int結合,說明指標所指向的內容的型別是整型的,所以p是乙個由返回整型資料的指標所組成的陣列。...

多級指標玩法

多級指標玩法 define crt secure no warnings include include intmain const char cp const char cpp cp printf s n cpp point printf s n cpp 3 er printf s n cpp 2...

C 多級指標與多維陣列

多級指標可對應於多維陣列,這種指標變數中存的是另乙個指標變數的位址,其說明如下 int val 10 int ptr val int pptr ptr int ppptr pptr 是多少級指標就有多少 號 這裡val值為10,ptr值也為10,pptr的值和 ppptr的值均為10。注意這裡的 號...