Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Указатели и адреса. Привести пример программы, использующей указатели.

Читайте также:
  1. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  2. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  3. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  4. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  5. VI. ПРИМЕРНАЯ МЕТОДИКА ОБУЧЕНИЯ УПРАЖНЕНИЯМ КУРСА СТРЕЛЬБ
  6. Августа 1792 г. Законодательное собрание во Франции отрешило короля Людовика XVI от власти и заключило его в тюрьму. Это пример проявления санкций
  7. Автомобили - идеальный пример эмпирического продукта

Указатель - это переменная, содержащая адрес другой переменной. Указатели очень широко используются в языке "C". Так как указатель содержит адрес объекта, это дает возможность "косвенного" доступа к этому объекту через указатель. Для объявления указателя после имени типа ставится *, например,

int *pi; //pi – указатель на переменную целого типа

Существует унарный оператор &, выдающий адрес своего операнда. После выполнения инструкций

int i = ‘0’;

pi = &i;

указатель pi будет содержать адрес переменной i (говорят, что pi ссылается на i). Схема расположения в памяти переменной i и указателя pi, содержащего ее адрес, показана на рис. Целая переменная i занимает два байта памяти, а указатель pi – четыре. Такое количество памяти выделяется под указатели на так называемых 32 –разрядных компьютерах, в которых для формирования адресов используется 4 байта, состоящих из 8 двоичных разрядов – битов.

Унарный оператор * применяется к указателю и выдает объект, на который ссылается данный указатель, например,

*pi = 2; //Теперь i = 2

Иначе говоря, если pi указывает на i, то выражение *pi и i – это одно и то же.

Можно создавать указатели на величины любых типов.

//Программа вычисляет периметр и площадь треугольника по трем его сторонам.

#include <stdio.h> #include <math.h>

/*triangle: вычисление периметра и площади треугольника. Возвращает 1 если треугольник со сторонами a, b, c существует и 0 в противном случае. Периметр и площадь возвращаются из функции через аргументы, имеющие тип указателя. */

int triangle(double a, double b, double c, double *p_perim, double *p_area)

//a, b, c - стороны треугольника

//p_perim - указатель на переменную для периметра, p_area - указатель на переменную для площади

{ double p; //Полупериметр

if(a > b + c || b > a + c || c > a + b) //Проверка существования треугольника

return 0; //Треугольник не существует, выход из функции

p = (a + b + c) / 2;

*p_perim = 2 * p; //Периметр

*p_area = sqrt(p * (p - a)*(p - b)*(p - c));

return 1; }

int main()

{ double r, s, t; //Стороны треугольника

double P, A; //Периметр и площадь

cout << "Введите три стороны треугольника: "; cin >> r >> s >> t;

if (triangle(r, s, t, &P, &A) == 0)

cout << "Такого треугольника не существует\n";

else

cout << "Периметр: " << P << ", площадь: " << A <<"\n";

return 0;}

 


Дата добавления: 2015-07-08; просмотров: 145 | Нарушение авторских прав


Читайте в этой же книге: Строки символов представляют последовательность произвольных символов, заключенных в двойные кавычки, например, “Строка символов”, “String of characters”. | Процесс создания программы. Исходная и рабочая программы. Препроцессор, компилятор, редактор связей. | Целые типы в языке Си и операции над ними. Представление целых констант в различных системах счисления. | Операторы присваивания. Приоритет и порядок выполнения операторов. Привести примеры. | Цикл do…while. Программа вычисления квадратного корня. | Функции. Формальные параметры и фактические аргументы. Способ передачи аргументов в функции. Привести пример. | Массивы как аргументы функций. Функция сортировки массива методом пузырька. | Символы и символьные константы. Представления символов. Ввод и вывод символов. Привести примеры. | Привести пример программы по обработке строк. | Препроцессор. Директивы препроцессора. |
<== предыдущая страница | следующая страница ==>
Макросы. Макросы с параметрами.| Указатели и массивы. Адресная арифметика.

mybiblioteka.su - 2015-2017 год. (0.005 сек.)