二級指標的記憶體模型小結

2021-10-07 15:06:43 字數 2786 閱讀 8830

/*********************the start

*****************/

此處定義:

主調函式分配記憶體,稱之為輸入;

被調函式分配記憶體,稱之為輸出;

指標是為記憶體服務的。

二級指標做輸入:

第一種型別:

#include

"stdio.h"

#include

"stdlib.h"

#include

"string.h"

intprintfstr

(char

**str,

int strnum)

return0;

}int

mystrsort

(char

**str,

int strnum)}}

return0;

}void

main()

;//這是乙個陣列,裡邊存放的是各字串的位址。稱為指標陣列。

//"bbbbbbbbbbbbbb","aaaaa","cccccccc","111"都在常量區存放,

//被調函式修改的是陣列元素,

//陣列元素是乙個指標變數,指標變數值是指向那些字串的記憶體位址,

//牢記:

//指標變數和他所指向的記憶體位址不一樣。

printfstr

(arraystr,4)

;mystrsort

(arraystr,4)

;printf

("排序後:\n");

printfstr

(arraystr,4)

;system

("pause");

}

主函式分配指標陣列記憶體塊,被調函式用二級指標做引數,來呼叫主函式中指標陣列的內容,即的位址,用來進行排序和列印。

第二種型別:

#include

"stdio.h"

#include

"stdlib.h"

#include

"string.h"

intprintfstr2

(char myarray[10]

[30],

int inum)

return0;

}int

strsort2

(char myarray[10]

[30],

int inum)}}

}void

main()

;for

(i=0

; i<

4; i++

)printf

("第二種記憶體模型,排序前\n");

printfstr2

(myarray,4)

;//printfstr2(myarray[10][30], 4);

strsort2

(myarray,4)

;printf

("第二種記憶體模型,排序之後\n");

printfstr2

(myarray,4)

;system

("pause");

}

一維陣列做被呼叫函式引數時,func(char a[num])中,a[num]退化為指標,此指標是以a為陣列名的指標。

第三種型別:

自己malloc記憶體型別

#define _crt_secure_no_warnings

#include

"stdio.h"

#include

"stdlib.h"

#include

"string.h"

intmystrprint

(char

**str,

int strnum)

return0;

}int

mysortstr3

(char

**str,

int strnum)}}

return0;

}void

main()

; char

**str =

(char**

)malloc(10

*sizeof

(char*)

);if(str ==

null

)for

(int i =

0; i <

10; i++

)sprintf

(str[i]

,"%d%d%d%d"

, i, i, i, i);}

mystrprint

(str,10)

;//排序

mysortstr3

(str,10)

;//輸出

printf

("排序之後:\n");

mystrprint

(str,10)

;for

(int i =

0; i <

10;i++)if

(str !=

null

)system

("pause");

}

第三種記憶體分配型別和第一種類似,可以用第一種的排序函式。

/*****************************the end *************************/

二級指標記憶體模型(一)

二級指標做輸入 include include include int getmem char myp1,int mylen1,char myp2,int mylen2 strcpy tmp1,abcdefg mylen1 strlen tmp1 myp1 tmp1 tmp2 char malloc...

C語言 二級指標記憶體模型

二級指標第一種記憶體模型 include include 說明 類似於int a 5 陣列名a是一維陣列a中首元素的指標 我自認為此假設可應用於多維陣列與指標 二級指標的主要功能是修改一級指標的值 列印一維陣列 int printarr char pin,int num 列印二級指標陣列 int i...

C語言 二級指標記憶體模型

二級指標記憶體模型 define crt secure no warnings include include include 記憶體模型詳解 一維陣列型別是 typedef int myarr 5 myarr a 其中myarr是一維陣列型別 myarr p p是一維陣列的指標 是一維陣列的指標的...