Программирование на языке С++. Викентьева О.Л - 30 стр.

UptoLike

30
1)
//описание функции для обмена переменных а и b
void change (int a,int b)
{
int r;
r = a; a = b; b = r;
}
// вызов функции
change(a, b);
Обмена не произойдет, т. к. результат не будет передан в
вызывающую программу.
2)
void change (int *a,int *b)
{
int r;
r = *a; *a = *b; *b = r;
}
// вызов функции
change(&a, &b);
При вызове передаются адреса, по которым находятся значе-
ния и выполняется обмен значений, которые находятся по
этим адресам.
1.2. Массивы и строки как параметры функций
Если в качестве параметра функции используется обо-
значение массива, то на самом деле в функцию передается
адрес первого элемента массива.
Пример:
//вычисление суммы элементов массива
//вариант 1
int sum (int n, int a[] )
{
int i,int s=0;
for( i=0; i<n; i++ )
s+=a[i]
return s;
}
void main()
{
int a[]={ 3, 5, 7, 9, 11, 13, 15 };
int s = sum( 7, a );
cout<<s;
}
//вариант 2
int sum (int n, int *a)
{
for(int i=0, s=0; i<n; s+=*(a+i),i++ );
return s;
}
void main()
{
int a[]={ 3, 5, 7, 9, 11, 13, 15 };
                                                       30


1)
//описание функции для обмена переменных а и b
void change (int a,int b)
{
int r;
r = a; a = b; b = r;
}
// вызов функции
change(a, b);
Обмена не произойдет, т. к. результат не будет передан в
вызывающую программу.
2)
void change (int *a,int *b)
{
int r;
r = *a; *a = *b; *b = r;
}
// вызов функции
change(&a, &b);
При вызове передаются адреса, по которым находятся значе-
ния и выполняется обмен значений, которые находятся по
этим адресам.
        1.2. Массивы и строки как параметры функций
     Если в качестве параметра функции используется обо-
значение массива, то на самом деле в функцию передается
адрес первого элемента массива.
Пример:
//вычисление суммы элементов массива
//вариант 1
int sum (int n, int a[] )
{
int i,int s=0;
for( i=0; i