指針數組
就是一個數組,由指針構成的數組,每一個元素都是指針,每個指針可以指向不同的內存地址,這些地址可以是數組、變量。
int var1 = 10;
int var2 = 20;
int var3 = 30;int *ptrArray[3]; // 定義一個指針數組,包含三個指針元素ptrArray[0] = &var1; // 第一個指針指向變量var1
ptrArray[1] = &var2; // 第二個指針指向變量var2
ptrArray[2] = &var3; // 第三個指針指向變量var3// 使用指針數組訪問各個變量的值
for (int i = 0; i < 3; i++) {printf("%d ", *ptrArray[i]); // 輸出變量的值
}//int *ptrArray[3]
這個指針數組里面就包含了三個指針,就是3個數組里面存放了三個數組,每個指針變量都有自己對應的地址指針數組的表達式怎么寫?
type *arrname[n]
type---指針數組中存儲的元素類型,可以是int*、char*舉例子:
我們現在要創建一個包含5個char*類型的指針的指針數組,表達式如下:
char*ptrArray[5]這將創建一個名為 ptrArray 的指針數組,其中每個元素都是 char* 類型的指針。這種聲明方式可用于存儲指向不同字符串或字符數組的指針。
數組指針
數組指針是指向數組的指針,它指向數組的首地址
通常情況下,數組指針==數組名,因為數組名本身就是數組的首元素的地址
整型都能取地址并且用指針變量存儲,那么數組也一樣的表達式:
type (*arrname)[SIZE];
type-----是數組元素的類型
arrname----數組的名字
[size]----數組的大小,即包含的元素個數我想創建一個元素是char*的數組指針表達式怎么寫?
char *(*ptr)[SIZE];我想創建一個元素是char的數組指針表達式怎么寫?
char (*ptr)[SIZE];反正就是括號前面的就是數組指針內的元素的類型如果要將一個數組的地址分配給數組指針,可以這么寫:
char array[SIZE];
char (*ptr)[SIZE] = &array;//取出數組array的地址存放在變量ptr中
就好比
int a=10
int *pa=&a,
將a的地址取出存放在pa里面
數組指針同樣可以這么理解,取出整個數組的地址,將地址存放在指針變量里面