關於陣列與指標的理解

2021-07-04 22:43:45 字數 1942 閱讀 2882

2.4返回堆上一維空間

2.4.1一級指標作為返回值輸出

void * allocmem(int base,int count) 

int main()

2.4.2二級指標作為函式引數輸出

int  allocmem(void **p,int base,int n) 

int main() 

2.5返回堆上二維空間

二維空間,並不一定就是二維陣列,具有陣列的訪問形式。但己經遠遠不是陣列 的定義了。 

2.5.1一級指標作返回值輸出

void * alloc2dmem(int base,int row,int line) 

int main() }

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

putchar(10);

} free(p);

return 0; }

2.5.2二級指標作返回值輸出

★記憶體不連續

void  **calloc(int base,int row,int line)

return p; }

★記憶體連續的

void  **calloc(int base,int row,int line)

return p;}

★如何釋放

通過函式引數,二級指標傳位址釋放

void freecalloc(int **p,int n)//這裡的n為行數

free(p); }

2.5.3**指標作為函式引數輸出

void allocmem(void ***p,int row,int line) }

返回二維空間總結:二級指標和二維陣列名,沒有關係。不代表二級指標,同二維空間沒有關係。

練習:1、判斷乙個機子的大小段對齊(兩種方法)

void bigorsmall()

void bigorsmall2()

; union un u;

u.a = 0x12345678;

if(u.b == 0x78)

printf("small endian\n");

else

printf("big   endian\n"); }

int main(void)

注意:int a=0x12345678

小端對齊                    大端對齊

12                           78

34                           56

56                           34

78                           12

高位在高位址                高位在低位址

2.檔案讀寫

char* code(char * buf,int line)

char * secret = calloc(nlen+1,1);

char *ps = secret;

char(*pa)[line] = (char(*)[line])pt;

for(int i=0; i }

*ps = '\0';

free(pt);

return secret;

} char* decode(char * buf, int line) }

*pd = '\0';

while(*--pd=='*')

*pd = '\0';

return desecret;

} int main(void)

注意:fgets會得到\0   strcpy也會同時拷貝\0,file *p    p指向的是file這個結構體中的內容

3.求大小

#include 

void func(int b[100]) 

int main(void)

陣列指標與指標陣列的理解

在進行閱讀yolo原始碼的時候,由於其都是用c寫的,在指標方面,遇到了很多問題,現在就問題,對c進行更深的理解。1.c當中的strcpy與strcat函式的區別 字串處理strcpy,strcat函式的用法 1 strcat是用來連線兩個字串的,原型是char strcat char dest,ch...

指標陣列與陣列指標的理解

指標陣列與陣列指標是十分繞口的,也不容易記憶,想要知道它是什麼?就看它後面是什麼詞!指標陣列 指標陣列後面的詞就是陣列,所以它就是陣列,而陣列裡面放的是指向這個型別的指標 陣列指標 陣列指標後面的詞是指標,則它就是個指標。在知道指標陣列和陣列指標字面的意思之後,我們就要解決遇到的表示式是指標陣列還是...

關於C語言的指標陣列與指標陣列的個人理解

一 指標陣列與指標陣列 1,指標陣列 顧名思義,即乙個元素全部是指標的陣列,其形式與普通陣列相似,形式如 a n 在理解指標陣列的使用方式前,我先來說下我個人對陣列的理解。比如一維整形陣列 形如int a 3 其實是乙個具有3個整形元素的變數 二維整形陣列 形如int a 4 3 可將其視為有a 4...