C++ 数组指针和指针数组
教程导读
学研发网的这篇信息学奥赛技术教程文章主要介绍了C++ 数组指针和指针数组,现在分享给大家,供学习和参考。文章包含1058字,纯文字阅读大概需要3分钟。
教程信息
学习目标
掌握数组指针
掌握指针数组
理解教程练习代码
一、数组的定义
数组在定义的时候要确定长度,系统要给他分配存储空间(地址)。
//长度为7的数组,里面存储的元素(数据)分别是10,11,12,13,14,15,16,17 int a[7] = {10,11,12,13,14,15,16,17}; int a1[10] = {100}; //长度为10的数组,第1个元素的数据为100,其他默认都是 0 //虽然没有定义数组长度,但是编译器会根据后面元素的个数算出数组长度是5 int a3[] = {10,20,30,40,50};
数组是这样存储的,是连续的地址空间。
数组在内存中是连续的,数组是通过下标访问的(下标从0开始)。
a[3] //取的是下标是3的值 &(a[3]) //取的是a[3]对应的地址值
二、数组指针
数组定义的时候, a 作为数组名,指向的是数组的首地址,它本身就是一个指针。
int *p; p = a; //指针赋值
a[0] 是数组的第一个元素,它的地址和 a 是一样的,所以也可以通过取 a[0] 的地址值,赋值给指针。
int *p; p = &(a[0]) // &a[0]
所以,p、arr、 &(arr[0])
三者等价,都代表了 数组的首地址。
int *p; p = &(a[0]) // &a[0]
也可通过 p 访问数组中其他元素。
#include <iostream> using namespace std; int main(){ int a[10] = {10,20,30,40,50,60,70,80,90}; int *p = &(a[0]); // *p = a cout << p[5] << endl; //可以通过p访问数组 return 0; }
三、指针数组
指针数组本质是一个数组,只是它的元素类型是指针。
#include <iostream> using namespace std; int main(){ int a = 10; int b = 20; int* arr[2] = {&a, &b}; cout << arr[0] << endl; //取a地址 cout << *arr[0] << endl; //取a值 //下面这句话对吗? int **p; p = arr; cout << *p[0] << endl; //取a值 return 0; }
arr 是指针的数组,所以将它赋值给p的时候,p必须是指针的指针。int *p
表示int的指针,所以是**p
。
教程咨询
如果章节内容看不懂,可以联系作者。
教程总结
以上是学研发网为您提供C++ 数组指针和指针数组的全部内容,希望教程文章能够帮你了解学习C++ 数组指针和指针数组,解决所遇到的问题。 如果觉得学研发网信息学奥赛教程内容还不错,欢迎将学研发网网站推荐给身边需要的人。
教程备注
版权声明:教程内容为学研发网整理和编写,如需转载请联系站长并附上文章原始链接和原始作者信息。
手机阅读
扫描二维码推送至手机访问。
本文链接:http://www.xueyanfa.com/xinaojiaocheng/xinaocpp-96.html