#指针#变量#
1.一个整型数 int number;
2.一个指向整型数的指针 int* ptrToInt;
3.一个指向指针的指针,它指向的指针是指向一个整型数 int** ptrToPtrToInt;
4.一个有10个整型数的数组 int arry[10];
5.一个有10个指针的数组,该指针是指向一个整型数的 int* ptrArray[10];
6.一个指向有10个整型数数组的指针 int (*arryPtr)[10];
eg: int arr[10] = {0,1,2,3,4,5,6,7,8,9}; 那么就可以定义 int (*arryPtr)[10] = &arr;
int main() {
int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // 定义一个包含10个整数的数组
int (*arrayPtr)[10] = &arr; // 声明一个指向数组的指针,并初始化为指向arr
// 通过指针访问数组元素
for (int i = 0; i < 10; i++) {
printf("%d ", (*arrayPtr)[i]); // 等价于 arr[i]
}
printf("\n");
return 0;
}
那这个指针还可以怎么用呢,既然(*arrayPtr)[i]和arr[i]等价,那么为什么我们不直接用arr[i],
下面大概说一下这样写的用处。
a)直接通过数组索引访问 int value = arrayPtr[0][3]; //访问第一个数组的第4个元素,从0索引。
b) 使用解引用和索引访问 int value = (*arrayPtr)[3]l;
c) 遍历数组
for(int i; i<10 ; ++i) { std::cout<< (*array)[i]<<endl; }
d)指针运算 int (*nextArrayPtr)[10] = arrayPtr + 1; // 移动到下一个数组(假设内存是连续的)
e)函数参数 这在处理动态数组或需要修改数组内容的函数时非常有用
void processArray(int (*arrPtr)[10]) {
for (int i = 0; i < 10; ++i) {
// 对数组元素进行某种处理
std::cout << (*arrPtr)[i] << " ";
}
std::cout << std::endl;
}
int main() {
int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int (*arrayPtr)[10] = &arr;
processArray(arrayPtr);
return 0;
}
f)动态内存分配 可以使用这种类型来管理动态分配的数组:
int (*dynamicArrayPtr)[10] = new int[5][10]; // 分配5个数组,每个数组包含10个整数
// 使用dynamicArrayPtr...
delete[] dynamicArrayPtr; // 释放内存
为了加深理解 我们更进一步 看一下指向多维数组的指针。
g)指向二维数组的的指针定义以及初始化
int arr[4][5] = {
{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20}
};
int (*arrayPtr)[5] = arr; // 指向包含5个整数的4个数组
在这里,arrayPtr
是一个指针,指向一个包含5个整数的数组,也就是指向二维数组的第一行
h)动态分配二维数组
int** dynamicArr = new int*[4];
for (int i = 0; i < 4; ++i) {
dynamicArr[i] = new int[5];
}
// 使用 dynamicArr 作为二维数组
// ...
// 释放动态分配的内存
for (int i = 0; i < 4; ++i) {
delete[] dynamicArr[i];
}
delete[] dynamicArr;
这些是指向数组的指针的一些基本用法。它们在处理数组、特别是多维数组或动态分配的数组时非常有用。通过这种方式,你可以更灵活地操作数组,同时保持代码的清晰和简洁。
好了我们接着看
7.一个指向函数的指针,该函数有一个整型参数并返回一个整型数;
int* (funcptr) (int);
8.一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
int (*funcPtrArray[10])(int);
标签:10,arr,指向,int,C++,基础知识,数组,指针 From: https://blog.csdn.net/wahahshdjdjdn/article/details/143904530