C++基础系列(数组的使用)

本文详细介绍了C++中的数组定义、访问、通过指针操作数组、传递数组到函数、从函数返回数组以及动态数组的创建与管理。通过实例展示了如何使用指针遍历数组元素,以及如何在函数间传递数组并返回数组指针。

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;			//手动释放申请的内存

 

这个简单的了解一下!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值