常量指针与指针常量
常量指针(Pointer to Constant)
常量指针指向的值不可修改,但指针本身可以指向其他地址。
const int *ptr;
ptr可以指向不同的int类型变量,但通过ptr修改指向的值(如*ptr = 10;)会报错。
指针常量(Constant Pointer)
指针本身是常量,即指针的指向不可修改,但指向的值可以修改。
int *const ptr;
ptr必须初始化且不能指向其他地址,但可以通过ptr修改指向的值(如*ptr = 20;)。
函数指针与指针函数
函数指针(Pointer to Function)
指向函数的指针,存储函数的入口地址,用于动态调用函数。- int (*funcPtr)(int, int); // 声明一个函数指针
- funcPtr = &add; // 指向函数add
- int result = funcPtr(2, 3); // 调用函数
复制代码 指针函数(Function Returning Pointer)
返回指针类型的函数,本质是函数而非指针。- int *createArray(int size) {
- return malloc(size * sizeof(int));
- }
复制代码 指针数组与数组指针
指针数组(Array of Pointers)
数组元素均为指针,常用于存储字符串数组。
char *strArray[3] = {"hello", "world", "!"};
strArray是一个包含3个char*类型指针的数组。
数组指针(Pointer to Array)
指向整个数组的指针,常用于多维数组操作。- int (*arrPtr)[4]; // 指向包含4个int的数组
- int matrix[3][4];
- arrPtr = matrix; // 指向matrix的第一行
复制代码 通过arrPtr可访问二维数组的行(如arrPtr[1][2])。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |