#include<stdio.h>
#include<string.h>
VVOD (x,y)
char x[],y[];
{
int m,i,j,l,n1;
puts("Vvedite text");
gets(x);
n1=strlen(x);
for(i=0,j=0,l=0;l<=n1;l++)
{
if(x[l]==' '||x[l]=='\0')
{
*(y+i*15+j)='\0';
i++;
j=0;
}
else
{
*(y+i*15+j)=x[l];
j++;
}
}
m=i;
return m;
}
//zadanie1
ZADANIE1(x,y)
char x[],y[];
{
int k,l,i,j;
int &n=m;
l=0;
for(i=0;i<n;i++)
{
k=strlen(y[i]);
for(j=0;j<n;j++)
{
if(*(y+i*15+j)>='0'&&*(y+i*15+j)<='9')
{
l=1;
}
}
}
if(l==1)
{
printf("Cifri Ect'\n");
}
else
{
printf("Cifr Het\n");
}
}
#include <stdio.h>
int func1()
{
return 5;
}
int func2(int x)
{
return x * 2;
}
int func3(int x)
{
return x * 3 + 1;
}
int main(void)
{
printf("%d\n", func3(func2(func1())));
return 0;
}
[guest@localhost c]$ .ansi t.c -o t
[guest@localhost c]$ ./t
31
[guest@localhost c]$
при передачи по значению передаваемое значение не меняется, а внутри функции создается временная переменная.
при передачи по указателю или ссылки передается только адрес, передаваемый объект можно изменить изнутри функции и не создается локальной (временной) переменной внутри функции. разница между передачи ссылкой и указателем в удобстве употребления (не надо писать звездочку каждый раз внутри функции).
#include <iostream>
using namespace std;
void f_value(int a){ // значение
a = 10; // изменяем параметр
}
void f_poiner(int * a){ // указатель
*a = 10; // изменяем параметр
}
void f_reference(int & a){ // ссылка
a = 20; // изменяем параметр
}
int main(){
int a = 0;
cout << "a = " << a << endl;
f_value(a); // значение переменной (а) НЕ изменится после выполнения
cout << "a = " << a << endl;
f_poiner(&a); // значение переменной (а) изменится после выполнения
cout << "a = " << a << endl;
f_reference(a); // значение переменной (а) изменится после выполнения
cout << "a = " << a << endl;
return 0;
}
---------------------------------------------------
a = 0
a = 0
a = 10
a = 20
Press <RETURN> to close this window...