找回密码
 立即注册
首页 业界区 业界 深入理解指针:常量、函数与数组

深入理解指针:常量、函数与数组

榷另辑 4 天前

常量指针与指针常量

常量指针(Pointer to Constant)

常量指针指向的值不可修改,但指针本身可以指向其他地址。
const int *ptr;
ptr可以指向不同的int类型变量,但通过ptr修改指向的值(如*ptr = 10;)会报错。
指针常量(Constant Pointer)

指针本身是常量,即指针的指向不可修改,但指向的值可以修改。
int *const ptr;
ptr必须初始化且不能指向其他地址,但可以通过ptr修改指向的值(如*ptr = 20;)。
函数指针与指针函数

函数指针(Pointer to Function)

指向函数的指针,存储函数的入口地址,用于动态调用函数。
  1. int (*funcPtr)(int, int); // 声明一个函数指针
  2. funcPtr = &add;          // 指向函数add
  3. int result = funcPtr(2, 3); // 调用函数
复制代码
指针函数(Function Returning Pointer)

返回指针类型的函数,本质是函数而非指针。
  1. int *createArray(int size) {
  2.     return malloc(size * sizeof(int));
  3. }
复制代码
指针数组与数组指针

指针数组(Array of Pointers)

数组元素均为指针,常用于存储字符串数组。
char *strArray[3] = {"hello", "world", "!"};
strArray是一个包含3个char*类型指针的数组。
数组指针(Pointer to Array)

指向整个数组的指针,常用于多维数组操作。
  1. int (*arrPtr)[4]; // 指向包含4个int的数组
  2. int matrix[3][4];
  3. arrPtr = matrix;  // 指向matrix的第一行
复制代码
通过arrPtr可访问二维数组的行(如arrPtr[1][2])。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册