欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > int (*)[3]和int (*arr_ptr)[3]区别

int (*)[3]和int (*arr_ptr)[3]区别

2025/5/8 15:05:09 来源:https://blog.csdn.net/D1557329860/article/details/147770429  浏览:    关键词:int (*)[3]和int (*arr_ptr)[3]区别

一、类型层面

  • int (*)[3]:它属于一种指针类型。具体而言,这是一个指向包含3个int类型元素的数组的指针。可以把它看作是对一类指针的抽象定义,就像int代表整数类型一样,int (*)[3]代表指向指向特定数组的指针类型。
  • int (*arr_ptr)[3]:这是一个变量声明。这里的arr_ptr是一个变量名,其类型为int (*)[3],也就是说arr_ptr是一个指向包含3个int类型元素的数组的指针。

二、代码示例及解释

#include <stdio.h>int main(void){//定义一个包含3个int类型元素的数组int arr[3] = {1, 2, 3};//定义一个指向包含3个int类型元素的数组的指针int (*arr_ptr)[3];//将arr的地址赋值给arr_ptrarr_ptr = &arr;// 打印数组元素for (int i = 0; i < 3; i++) {printf("%d ", (*arr_ptr)[i]);}printf("\n");return 0;    }

三、代码解释

  1. int (*)[3] 的体现:在代码里,arr_ptr 的类型就是 int (*)[3],不过这里并没有直接使用 int (*)[3] 这个类型去做别的操作,它主要是用来明确 arr_ptr 这个变量的类型。
  2. int (*arr_ptr)[3] 的体现int (*arr_ptr)[3] 是对 arr_ptr 变量的声明。之后通过 arr_ptr = &arr; 把数组 arr 的地址赋给 arr_ptr,如此 arr_ptr 就指向了数组 arr
  3. 访问数组元素:借助 (*arr_ptr)[i] 这种方式能够访问数组 arr 里的元素。*arr_ptr 会把 arr_ptr 解引用得到它所指向的数组,然后通过 [i] 来访问数组中的第 i 个元素。

四、总结

  • int (*)[3] 单纯是一种类型定义,代表指向包含 3 个 int 类型元素的数组的指针类型。
  • int (*arr_ptr)[3] 是一个变量声明,创建了一个名为 arr_ptr 的变量,其类型为 int (*)[3]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词