ВУЗ:
Составители:
Рубрика:
return s=sqrt(p*(p-a)*(p-b)*(p-c));//формула
Герона
}
...
double s1=square(2.5,2,1);
double a=2.5,b=2,c=1;
double s2=square(a,b,c);
double x1=1,y1=1,x2=3,y2=2,x3=3,y3=1;
double s3=square(sqrt(pow(x1-x2,2)+pow(y1-
y2,2)),//расстояние между 1 и 2
sqrt(pow(x1-x3,2)+pow(y1-y3,2)), //расстояние
между 1 и 3
sqrt(pow(x3-x2,2)+pow(y3-y2,2))); //расстояние
между 2 и 3
...
p и s – локальные переменные.
Таким образом в стек заносятся копии фактических параметров
и операторы функции работают с этими копиями. Доступа к самим фак-
тическим параметрам у функции нет, следовательно, нет возможности
их изменить.
При передаче по адресу в стек заносятся копии адресов параметров,
следовательно, у функции появляется доступ к ячейке памяти, в которой
находится фактический параметр и она может его изменить.
Пример 71
void Change(int a,int b) //передача по значению
{int r=a;a=b;b=r;}
int x=1,y=5;
Change(x,y);
A 1 5
B 5 1
r 1
cout<<”x=”<<x<<”y=”<<y;
выведется: x=1y=5
void Change(int *a,int *b)//передача по адресу
{int r=*a;*a=*b;*b=r;}
int x=1,y=5;
Change(&x,&y);
A &x 5
B &y 1
163
Страницы
- « первая
- ‹ предыдущая
- …
- 161
- 162
- 163
- 164
- 165
- …
- следующая ›
- последняя »
