大佬教程收集整理的这篇文章主要介绍了指向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
在操作符中使用<<数组被显式转换为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,请注明来意。