Использование указателей в функциях и указатели на функции
Параметрами функций могут быть не только переменные базового типа, но и массивы. Как известно размер массива должен быть определен до его использования. Поэтому, в функциях используются массивы с явным заданием размера, либо с параметрами несущими информацию о размере. Следует запомнить, что если формальными параметрами функции являются массивы, то аргументы передаются в виде указателей, т.е. происходит, так называемая, передача по ссылке..
Рассмотрим задачу умножения двух векторов.
#include <iostream>
#include <windows.h>
Using namespace std;
double multVect(int n,double x[],double y[]){
/*скалярное произведение*/
double z=0;
for(int i=0;i<n;i++) z=z+x[i]*y[i];
Return z;
}
void main(){
SetConsoleOutputCP(1251);
double u[]={1.0, 2.0, 3.0}, v[]={4.0, 5.0, 6.0};
cout<<"Произведение векторов="<<multVect(3,u,v);
}
Иногда возвращаемое значение функции должно быть указателем. Рассмотрим программу на примере объединения массивов.
#include <iostream>
#include <windows.h>
Using namespace std;
//объявляем и описываем фунцию
double *connectVect(int n, double* x, int m, double* y){
Int i;
double *z=new double[n+m]; //выделяем память
for(i=0;i<n;i++) z[i]=x[i]; //заносим в память
for(i=n;i<n+m;i++) z[i]=y[i-n];
Return z;
}
void main(){
Дата добавления: 2015-07-30; просмотров: 733;