数组的定义,初始化,元素赋值
int a[]={1,10,100};
int b[3]={1,10,100};
int c[3];
c[0]=1;c[1]=10;c[2]=100;
数组的名称相当于首个元素的地址,是一个常量指针,不能改变,但可以进行运算,以及将它的值赋给其他的指针变量
int a[3];
int *p;
*(a+2)=100;//注意此处需要用圆括号(),而不能用方括号[],因为a[2]=100就相当于*(a+2)=100
p=a;
多维数组:先行后列,下面的a是一个4*2的矩阵
int a[4][2]={{1,2},{3,4},{5,6},{7,8}}; int a[4][2]={1,2,3,4,5,6,7,8};这两个赋值是等同的
数组在函数中的传递和返回:
数组传递:
void myFunction (int *ptr);
void myFunction (int ptr [ ] );
void myFunction (int ptr [5]);
实例:
#include <iostream>
using namespace std;
// function declaration:
double getAverage(int arr[], int size);
int main ()
{
// an int array with 5 elements.
int balance[5] = {1000, 2, 3, 17, 50};
double avg;
// pass pointer to the array as an argument.
avg = getAverage( balance, 5 ) ;
// output the returned value
cout << "Average value is: " << avg << endl;
return 0;
}
double getAverage(int arr[], int size)
{
int i, sum = 0;
double avg;
for (i = 0; i < size; ++i)//此处的++i或者i++不影响
{
sum += arr[i];
}
avg = double(sum) / size;
return avg;
}
返回数组:
int *myFunction()
在这个过程中,学习到一个新的函数:setw
#include <iomanip>
using std::setw;
cout << "Element" << setw( 13 ) << "Value" << endl;
cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl;
setw(n)就是将后面的值自动定义占用n格,不够的补为空格,这样整个结果排列下来看着比较规整。