Int SummaAandB(int A,int B)
{ // функция возвращает сумму переменных A и B
return A+B; // возвращаемое значение
}
void PrintName(void){ //функция выводит на экран имя Serg 10 раз по одному
//в строке, не возвращает и не принимает никаких значений
for(int t=0;t<10;t++)
printf(“Serg\n”);
}
void PrintA(int A){ // функция выводит на экран значение переменной А
printf(“%d”,A);
}
void main(void){
float f=pi(); // вызов функции pi
printf(“pi=%f\n”,f);
int i=SummaAandB(1,3); // вызов функции SummaAandB
printf(“summa(A+B)=%d\n”,i);
PrintName(); // вызов функции PrintName
PrintA(20); // вызов функции PrintA
}
Указатели
В языке Си существует два способа доступа к переменной: ссылка на переменную и использование механизма указателей. Указатель - переменная (указатель) - переменная, предназначенная для хранения адреса в памяти. Указатель - константа - значение адреса ОП.
Определены две операции для доступа к переменным через указатели: " & " и " * ";
операция & - присвоить значение адреса;
операция * - выбрать содержимое из адреса.
Признаком переменной-указателя для компилятора является наличие в описании:
1) типа объекта, для доступа к которому используется указатель;
2) символа * перед переменной:
int var1, *prt;
Такое объявление приводит к появлению переменной var1 типа int и указателя на тип int, т.е. "указатель на целое". Место, выделяемое для него транслятором, зависит от модели памяти (может быть 2 или 4 байта).
Унарная операция & дает возможность присвоить адрес переменной указателю, т.е. у= &х, присваивает адрес х как содержимому переменной указателя у (рис.4.2).
Операцию & можно применять только к переменным и элементам массива. Недопустимы у=&(x+7), &25 .
Унарная операция * воспринимает свой операнд как адрес некоторого объекта и
использует его для выборки содержимого, если у = &х; z = *y; => z = х; (рис4.3)
Указатели могут встречаться в выражениях, как и любая другая переменная. Допустимы
выражения:
*у = 7; - в ячейку с адресом *у занести 7;
*х* = 5; - содержимое с адресом *х увеличить в пять раз;
(*z)++; - добавить 1 к содержимому с адресом *z.
Значение х |
y |
Рис.4.2.Схема образования ссылки на переменную
y |
Значение х (или *у) |
Рис.4.3.Схема извлечения значения по ссылке на переменную
Характерно, что указатели можно использовать в арифметических операциях. Например: если - указатель, то операция у++ увеличивает его значение на одну длину типа указателя. Транслятор будет масштабировать приращение адреса в соответствии с типом, заданным в объявлении указателя. После выполнения операции у++, у будет указывать на следующий элемент данного типа. Это свойство в языке Си используется при работе со структурированными данными.
Дата добавления: 2016-04-14; просмотров: 435;