c++ - "int *a[5]"和 int(*a)[5]” 有什么区别?

标签 c++ c arrays pointers

<分区>

它们在 C 和 C++ 上的工作方式会有所不同吗?

最佳答案

  1. int *a[5] - 这意味着“a”是一个指针数组,即数组“a”中的每个成员都是一个指针
    整数类型;数组的每个成员可以保存一个整数的地址。

  2. int (*a)[5] - 这里“a”是指向 5 个整数数组的指针,换句话说 “a”指向一个包含 5 个整数的数组。

示例:

#include<stdio.h>
   int main()
   {
           int b = 3;
           int c = 4;
           int *a[2] = {&b, &c}; // is same as ---int *a[] = {&b, &c} 
           printf("value pointed to by a[0] = %d, by a[1] = %d\n", *a[0], *a[1]);
           return 0;
   }

关于c++ - "int *a[5]"和 int(*a)[5]” 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25790789/

相关文章:

c - 如何从主函数调用dll文件?

python - 将样本从 .get_array_of_samples() 转换回 AudioSegment

c++ - 跨内核和用户空间的 Linux 时序

c++ - 如何将结构添加到 STL 列表

c++ - 处理嘈杂的运动姿势

c - MMX:淡入两幅图像结果

c++ - MFC:在 win32 文本区域(mfc 应用程序)中执行进程时异步(并发)显示进程的输出

c - 在 C 中创建链表时出现意外结果

c - 使用数组和指针

Java - CSVReader 在值中用逗号正确分割