C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了指向int数组的指针c大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我编写了以下代码,试图了解如何使用指向数组和数组引用的指针.这是我对正在发生的事情的思过程.

> arr与数组的第一个元素的地址相同. * arr告诉我该位置的int是什么,如arr [0].
> p是一个指针并被赋予arr,这是第一个元素的地址.所以本质上* p与* arr相同,p [0]与arr [0]相同.
>在这里,我不明白发生了什么. arrPtr是一个指向十个整数数组的指针.为什么不* arrPtr或arrPtr [0]给我9值?
> arrRef是对十个整数数组的引用,与上面的点不同,* arrRef或arrRef [0]的值为9.

这是我的代码

#include <iostream>

using std::cin;
using std::cout;
using std::endl;

int main() {
    int arr[10] = {9,18,31,40,42};
    cout << "arr: " << arr << endl;
    cout << "*arr: " << *arr << endl;
    cout << "arr[0]: " << arr[0] << endl;
    cout << endl;

    int *p = arr;
    cout << "p: " << p << endl;
    cout << "*p: " << *p << endl;
    cout << "p[0]: " << p[0] << endl;
    cout << endl;

    int (*arrPtr)[10] = &arr;
    cout << "arrPtr: " << arrPtr << endl;
    cout << "*arrPtr: " << *arrPtr << endl;
    cout << "arrPtr[0]: " << arrPtr[0] << endl;
    cout << endl;

    int (&arrRef)[10] = arr;
    cout << "arrRef: " << arrRef << endl;
    cout << "*arrRef: " << *arrRef << endl;
    cout << "arrRef[0]: " << arrRef[0] << endl;
}

这是我的输出

arr: 0xbf843e28
*arr: 9
arr[0]: 9

p: 0xbf843e28
*p: 9
p[0]: 9

arrPtr: 0xbf843e28
*arrPtr: 0xbf843e28
arrPtr[0]: 0xbf843e28

arrRef: 0xbf843e28
*arrRef: 9
arrRef[0]: 9

解决方法

* arrPtr或arrPtr [0]产生一个int类型的对象[10]

在操作符中使用<<数组被显式转换为int *类型的指针和重载运算符<<对于这样的表达式,选择const void *的参数. 你可以看到这些输出

arr: 0xbf843e28

*arrPtr: 0xbf843e28
arrPtr[0]: 0xbf843e28

重合.

如果要输出数组的第一个元素,则应该编写

std::cout << **arrPtr << std::endl;
std::cout << ( *arrPtr )[0] << std::endl;
std::cout << arrPtr[0][0] << std::endl;
std::cout << *arrPtr[0] << std::endl;

为了更清楚,你可以引入一种参方式

int ( &arrRef )[10] = *arrPtr;

然后写

std::cout << *arrRef << std::endl;
std::cout << arrRef[0] << std::endl;

大佬总结

以上是大佬教程为你收集整理的指向int数组的指针c全部内容,希望文章能够帮你解决指向int数组的指针c所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。