1.数组的定义
type arrayName [ arraySize ][arraySize1]; arraySize必须是一个大于等于零的整数常量。
声明的时候,可以初始化,也可以不初始化。另外数组的名字通常代表数组的首地址(第一个数组元素的地址)
2.数组的访问
直接用【】就ok.(从0开始,matlab是(),从1开始)。
3.指向数组的指针
#include <iostream>
using namespace std;
int main ()
{
// 带有 5 个元素的双精度浮点型数组
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
double *p;
p = balance;
// 输出数组中每个元素的值
cout << "使用指针的数组值 " << endl;
for ( int i = 0; i < 5; i++ )
{
cout << "*(p + " << i << ") : ";
cout << *(p + i) << endl;
}
cout << "使用 balance 作为地址的数组值 " << endl;
for ( int i = 0; i < 5; i++ )
{
cout << "*(balance + " << i << ") : ";
cout << *(balance + i) << endl;
}
return 0;
}
4.传递数组给函数的参数
主要有三种方式,可以直接传已知大小的数组,或者直接出传未知大小的参数,再或者可以传递指针。
double getAverage(int arr[], int size)
{
int i, sum = 0;
double avg;
for (i = 0; i < size; ++i)
{
sum += arr[i];
}
avg = double(sum) / size;
return avg;
}
该函数参数为未知大小的数组!
函数的使用如下
#include <iostream>
using namespace std;
// 函数声明
double getAverage(int arr[], int size);
int main ()
{
// 带有 5 个元素的整型数组
int balance[5] = {1000, 2, 3, 17, 50};
double avg;
// 传递一个指向数组的指针作为参数
avg = getAverage( balance, 5 ) ;
// 输出返回值
cout << "平均值是:" << avg << endl;
return 0;
}
5.从从函数返回数组
C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// 要生成和返回随机数的函数
int * getRandom( )
{
static int r[10];
// 设置种子
srand( (unsigned)time( NULL ) );
for (int i = 0; i < 10; ++i)
{
r[i] = rand();
cout << r[i] << endl;
}
return r;
}
// 要调用上面定义函数的主函数
int main ()
{
// 一个指向整数的指针
int *p;
p = getRandom();
for ( int i = 0; i < 10; i++ )
{
cout << "*(p + " << i << ") : ";
cout << *(p + i) << endl;
}
return 0;
}
首先定义一个类型的指针,这个指针将作为函数返回数组的首地址!
6.动态数组
很多时候我们使用数组的时候,都不知道数组的大小,这时候,动态数组的存在就非常有意义!
int n;
scanf("%d",&n); //手动输入数组长度
int* parr = new int[n]; //动态申请数组内存
...... //进行必要的操作
delete[] parr; //手动释放申请的内存
这个简单的了解一下!
本文详细介绍了C++中的数组定义、访问、通过指针操作数组、传递数组到函数、从函数返回数组以及动态数组的创建与管理。通过实例展示了如何使用指针遍历数组元素,以及如何在函数间传递数组并返回数组指针。
&spm=1001.2101.3001.5002&articleId=104672870&d=1&t=3&u=973eb5cbfdc3496895af65ef258c60d6)
4873

被折叠的 条评论
为什么被折叠?



