Простые типы 1 страница

Список литературы

Заключение

Выполненные в работе аналитические расчеты, а так же показатели, комплексно характеризующие хозяйственную деятельность цеха №2 ОАО «ЭКЗ» за 2009 г., с выделением данных по анализируемому цеху являются исходной информацией для заполнения обобщающей таблицы основных показателей.

Таблица 16

Основные показатели хозяйственной деятельности

цеха №2 ОАО «Электрокабель» Кольчугинский завод»

  Показатели   план   факт   Отклонение
       
1. Объем реализованной продукции (или валовой продукции), тыс. руб. 138802,1 140149,54 + 1347,44
2. Объем товарной продукции, тыс. руб. Остаток готовой продукции на конец года, тыс. руб. 112224,6 4227,6 116166,04 3556,8 + 4241,44 -670,8
3. Выполнение плана поставок по договорам 138802,1 140149,54 + 1347,44
4. Среднесписочная численность ППП, чел. в том числе: - рабочих - руководителей и специалистов - служащих     + 2 + 2 - -
5. Фонд заработной платы, тыс. руб.   28524,46   28608,96   + 84,5
6. Среднемесячная заработная плата: - 1 работающего, руб. - 1 рабочего, руб.   8429,21 11373,39   8394,65 11298,96   - 34,56 - 74,43
7. Производительность труда, тыс. руб.: - 1 работающего, - 1 рабочего.   492,21 664,12   493,48 664,22   + 1,27 + 0,1
8. Среднегодовая стоимость основных производственных фондов, тыс. руб.   74321,1   75973,4   + 1652,3
9. Фондоотдача основных фондов, 1,84 1,85 + 0,01
10. Фондоемкость основных фондов 0,55 0,54 - 0,01
16. Фондовооруженность основных фондов 263,55 267,51 + 3,96
17. Себестоимость продукции в целом по предприятию, тыс. руб.   108868,9   108010,8   - 858,1
1 8. Себестоимость единицы продукции, руб.   1618,7   1584,9   - 33,8
19. Прибыль от реализации продукции, тыс. руб.   23897,22   28005,04   + 4107,82

Приведенные данные в таблице показывают, что за отчетный год производственная и финансовая деятельность в цехе несколько улучшилась. Повысился объем реализованной продукции, а также увеличилась сумма балансовой прибыли.

Общая рентабельность – это отношение балансовой прибыли к среднегодовой стоимости основных производственных фондов и нормируемых оборотных средств. Расчетная рентабельность – это отношение балансовой прибыли, уменьшенной на сумму платы за основные фонды, фиксированных платежей, процентов за банковский кредит к среднегодовой стоимости основных и нормируемых оборотных средств.

Фактический объем товарной продукции за 2009 год увеличился на 3,8 % по сравнению с планом и составил 116466,04 тыс. руб. Рост производства обеспечен за счет значительного увеличения объема продаж, улучшения платежеспособности потребителей. Объем валовой продукции увеличился на 1% и составил 140149,54 тыс. руб.

Производительность труда на одного работающего возросла на 0,02%. Увеличение производительности труда произошло за счет увеличения объема выпускаемой продукции.

Численность рабочих цеха №2 увеличилась на 2 человека и составила 284 человек.

Общий фонд заработной платы возрос по отношению к плану на 0,2 % или на 84,5 тыс. руб., незначительно за счет увеличения выпуска продукции и уменьшения средней заработной платы ввиду пересмотра норм выработки.

Уровень прибыли в 2009 году составил 28005,04 тысяч рублей, что на 4107,82 тысяч рублей больше, чем предусмотрено планом, что говорит о высокой рентабельности производства.

Себестоимость товарной продукции снизилась в 2009 году и составила 99,21% по сравнению с планом, за счет двух факторов: снижению затрат материалов по переделу и увеличения выпуска продукции.

Общая стоимость производственных фондов увеличилась на 2,22% из-за ввода в действие нового оборудования. Фондоотдача увеличилась с 1,84 до 1,85 вследствие увеличения объема выпускаемой продукции.

Переход к рыночной экономике требует от предприятия повышения эффективности производства, конкурентоспособности продукции на основе внедрения достижений научно-технического прогресса, эффективности применяемых форм хозяйствования и управления производством.

Важным условием развития предприятия ОАО «Электрокабель» Кольчугинский завод в соответствии с избранной экономической и финансовой стратегией является его высокая инвестиционная активность. Экономический рост и инвестиционная активность являются взаимообусловленными процессами, поэтому предприятие уделяет постоянное внимание вопросам управления инвестициями. Инвестиционная деятельность характеризует на предприятии процесс обоснования и реализации наиболее эффективных форм вложения капитала, направленных на расширение экономического потенциала предприятия.

Задачей производственной сферы предприятия ОАО «Электрокабель» Кольчугинский завод является непосредственное осуществление производственного процесса с целью обеспечения установленных заданий по объему и структуре реализации готовой продукции.

Обновление отдельных видов оборудования представляет собой инвестиционную операцию, связанную с заменой имеющегося парка оборудования отдельными новыми видами, не меняющими общей схемы осуществления технологического процесса.


1. Конституция Российской Федерации от 12 декабря 1992 г.

2. Гражданский кодекс Российской Федерации. Часть 1 от 30.11.1994 №51-ФЗ (ред. от 27.12.2009).

3. Артеменко В. Г. Финансовый анализ. – М.: Дело и сервис, 2005. – 289 с.

4. Баканов М. И. Теория анализа хозяйственной деятельности / А. Д. Шеремет. – М.: Финансы и статистика, 2006. – 346 с.

5. Балабанов И. Т. Анализ и планирование финансов хозяйствующего субъекта. – М.: Финансы и статистика, 2007. – 389 с.

6. Баканов М. И. Курс экономического анализа / А. Д. Шеремет. – М.: Финансы и статистика, 2007. – 418 с.

7. Донцова Л. В. Анализ бухгалтерской отчетности / Н. И. Никифорова. – М.: Дело и сервис, 2007. – 271 с.

8. Ермолович Л. Л. Анализ финансово-хозяйственной деятельности предприятия. – Мн.: БГЭУ, 2007. – 198 с.

9. Ефимова О. В. Финансовый анализ. – М.: Бухгалтерский учет, 2007. – 503 с.

10. Ильенкова Н. Д. Спрос: анализ и управление. – М.: Финансы и статистика, 2005. – 331 с.

11. Ковалев А. И., Войленко В. В. Маркетинговый анализ / В. В. Войленко. – М.: Центр экономики и маркетинга, 2006. – 245 с.

12. Ковалев В. В. Финансовый анализ: управление капиталом, выбор инвестиций, анализ отчетности. – М.: Финансы и статистика, 2005. – 375 с.

13. Ковалев В. В. Анализ хозяйственной деятельности предприятия /О. Н. Волкова. – М.: Анализ хозяйственной деятельности. – М.: Проспект, 2004. – 246 с.

14. Ковалев А. И. Анализ финансового состояния предприятия. – 3-е изд., исправ., доп. - М.: Центр экономики и маркетинга, 2007. – 208 с.

15. Крейнина М. Н. Финансовое состояние предприятия. – М.: Дело и сервис, 2006. – 367 с.

16. Любушин Н. П. и др. Анализ финансово-экономической деятельности предприятия. – М.: ЮНИТИ, 2007. – 218 с.

17. Маркин Ю. П. Анализ внутрихозяйственных резервов. – М.: Финансы и статистика, 2004. – 300 с.

18. Савицкая Г. В. Теория анализа хозяйственной деятельности. – Мн.: ИСЗ, 2005. – 461 с.

19. Савицкая Г. В. Анализ хозяйственной деятельности предприятия: Учеб. пособие. – 7-е изд., испр. – Мн.: Новое знание, 2005. – 643 с.

20. Стражев В. И. Анализ хозяйственной деятельности в промышленности. – М.: Высшая школа, 2006. – 355 с.

21. Стоянова Е. С. Финансовый менеджмент 6-е изд., перераб. и доп. – М.: Перспектива, 2005. – 564 с.

22. Терехин В. И. Финансовое управление фирмой. - М.: Экономика, 2006. - 98 с.

23. Титаев В. Н. Управление предприятием и анализ его. - М.: Финансы и статистика, 2007. - 420 с.

24. Четыркин Е. М. Методы финансовых и коммерческих расчетов. - М.: Финансы и кредит, 2006. – 105 с.

25. Шеремет А. Д., Финансы предприятий / Р. С. Сайфулин – М.: ИНФРА-М, 2005. – 457 с.

26. Шеремет А. Д. Методика финансового анализа / Е. В. Негашев. – М.: ИНФРА-М, 2006. – 399 с.


Простыми собственными типами в С++ являются bool, double, int, и char (собственно булевский, двойной, целый и символьный тип). Эти типы имеют набор значений и представление, привязанные к низкоуровневой архитектуре компьютера, на котором работает компилятор.

Символьный тип char предназначен для обработки символьной (нечисловой) информации. Сегодня такие приложения, как тестовые процессоры, образовательные программы и базы данных по использованию превосходят математические прикладные программы.

В языке С тип char – это ограниченный целочисленный тип, который как и int допускает следующие операции:

char C;

int I;

C=’A’+10 - Преобразует char в int и обратно.

i=’A’ -Преобразует char в int.

с=i -Преобразует int в char.

В языке С++ тип char отличается от целочисленного, но поскольку существует приведение типов, то перечисленные операторы остаются допустимыми.

В языке С и старых версиях С++ нет собственного булевского типа. В них используется нуль для обозначения false и ненулевые значения для true.В современных версиях С++ тип bool является встроенным целочисленным типом (не типом перечисления) с неявными взаимными преобразованиями между ненулевыми значениями и литералом true, а также нулевым значением и false.

6.5 Выражения.

Выражение может состоять из литерала, переменной или представлять сложную комбинацию, включающую операции по вызову системных или пользовательских функций. В результате вычисления выражения получается значение.

Выражения могут находиться: в операторах присваивания, в булевых выражениях условных операторов, в границах операторов цикла, параметрах процедур и т.д.

Пример: int i;

char ch;

double b=1.9;

i=b/2.0 - i=0

ch=’A’ +1.0 -ch=’B’

6.6 Операторы присваивания.

Оператор присваивания помещает значение выражения по адресу памяти переменной. Объявление оператора присваивания:

Переменная:= выражение Ada

Переменная = выражение С

Левая часть оператора присваивания также может быть выражением, если это выражение можно вычислить как адрес:

a (i * (j+1)):=a (i * j) Ada

С++ предлагает короткие операторы присваивания:

a+ = b равнозначно a= a+b

a = a+b a= a*(a+b)

++i; i=i+1

--i; i=i-1

j= ++i; i= i+1; j=i;

j= i++ j=i; i=i+1 и т.д.

6.7. Записи.

Языки программирования поддерживают составные типы данных, к которым относятся записи и массивы. Значение типа запись состоит из набора значений других типов, называемых компонентами в Ada, членами в языке С и полями в Paskal. При объявлении типа каждое поле получает имя и тип. Следующее объявление в языке С описывает структуру с четырьмя компонентами:

Model [20] – символьный тип, строка из 20 символов;

color - тип перечисления Colors, принимает значения заданные пользователем согласно списка enum;

speed и fuel – параметры целого типа;

typedef enum {Black, Blue, Green, Red, White} Colors;

typedef struct {

char model [20];

Colors color;

int speed;

int fuel;

} Car_Data;

Объявление объектов struct:

Car_Data C1, C2;

C2.fuel =3; C++

C1.speed =C2.fuel;

Будучи выбранным, поле записи становится обычной переменной или значением типа поля. К нему применимы все операции, соответствующие этому типу.

Значение записи представляется числом слов памяти, вмещающим все указанные поля. Покажем размещение записи Car_Data на рисунке.

Доступ к отдельному полю осуществляется через величину смещения каждого поля от начала записи. Величина смещения постоянна и известна при компиляции. Реализация доступа к полям выглядит так:

load R1,&C1 - Загрузить адрес С1 в реестр R1.

load R2,20(R1) – Загрузить в R2 адрес, равный адресу в R1+20.

load R3,24(R1) - Загрузить адрес в R3, равный адресу в R1+24.

6.8. Массивы.

Массив – это запись, все поля которой имеют один и тот же тип. Поля называются элементами или компонентами и задаются не именами, как в записи, а позицией внутри массива. Доступ к элементам массива производится с помощью индексов. Язык С++ разрешает использовать любое целое выражение или численное значение для задания числа элементов массива.

cont int Max=5;

float A[Max + 3];

Значение индекса i массива A[i] лежит в диапазоне от 0 до общего числа компонентов без единицы. В приведенном примере от 0 до Мах+2.

Компоненты массива могут быть любого типа:

typedef struct {…} Car_Data;

Car_Data [100];

Индекс Car_Data изменяется от 0 до 99.

Записи и массивы могут вкладываться в друг друга в произвольном порядке. Для доступа к отдельному компоненту такой структуры выбор поля и индексация элементов должны выполняться по очереди до тех пор, пока не будет достигнут другой компонент:

typedef int A[10] - Тип массива;

typedef struct { - Тип запись;

А а; - Массив внутри записи;

сhar b;

} Rec;

Rec r[10]; - Массив записей с массивами типа int внутри;

int i, j, k;

k= r [i+1] a [j-1] - Последовательность выполнения: индексация, выбор поля, индексация, конечный результат.

Смысл элементов:

r – Массив записей, содержащих массивы целых чисел;

r[i] - Запись содержащая массив целых чисел;

r[i].a - массив целых чисел;

r[i].a[j] - целое число.

Каждая новая пара скобок в С++ увеличивает размерность массива. Объявление многомерных массивов:

int b[3][5] - двумерный массив.

int с[7][9][2] - трехмерный массив.

Инициализация массивов осуществляется построчно заключенными в фигурные скобки списком инициализаторов. Если список инициализаторов короче размера строки массива, то последние элементы массива строки инициализируются нулем.

int а[4]={9,6,7}; -- a[0]=9, a[1]=6, a[2]=7, a[3]=0.

int b[2][3]={ {1, 3, 5}, {2, 4} }; -- b[1][2]=0.

6.8.1. Реализация массивов

Элементы массива размещаются в памяти последовательно. Адрес элемента A[i] массива А определяется согласно выражению:

addr (A) + size(элемент) * (i- A’First) (6.1)

Пример: Пусть задано размещение элементов массива A[i] в памяти в последовательности

size=4 - размер элемента (смещение).

addr(A) =20 - адрес A[1].

A’First =20 + 4 (5-1) = 36

Сгенерированный машинный код составленный по формуле (6.1) выглядит так:

load R1, I - Загрузить I в реестр R1.

sub R1, A’First - Вычесть из значения в R1 нижнюю границу и результат поместить в R1.

multi R1, size - Умножить значение в R1 на смещение и результат занести в R1.

аdd R1, &A - Сложить значение в R1 и адрес А[1] и полученный адрес поместить в R1

load R2, (R1) - Загрузить содержимое R1 в R2.

Если A’First=0 (нуль), то не нужно вычитать в (6.1)индекс первого элемента. Вероятно поэтому, разработчики языка С приняли начинать индексацию массива с нуля.

При работе с многомерными массивами нужно представлять размещение элементов в памяти. За исключением языка Fortran, все языки хранят двумерные массивы как последовательность строк. Размещение массива B[3][5]:

6.8.2. Контроль соответствия типов в массивах

Организация контроля соответствия типов в массивах лежит полностью на программисте. Чаще всего встречаются три вида ошибок:

1. Индекс получает значение, которое выходит за установленный диапазон.

Пример: int a[10];

for (i=0; i<=10; i++)

a[i] = 2*i;

Последним элементом массива является а[9], но а[10] тоже будет вычислено.

Серьезность возникающей ошибки в том, что присваивание значения несуществующему элементу массива (а[10]) вызывает изменение некоторой ячейки памяти, которая будет востребована другими командами программы.

2. Передача информации через массивы с разными размерностями.

Пример: int a[5], b[2][4], c[3][5];

………………………… определены элементы матрицы В

for (i=0; i<2; i++)

for (j=0; j<4; j++)

c[i][j] = b[i][j];

for (i=0; i<5; i++)

a[i] = c[2][i];

Но значение с[2][4] не было определено. Следовательно а[4] будет присвоено значение, взятое из какой-то ячейки памяти, возможно, даже расположенное в области ОС.

3. Компьютеры отличаются способом хранения в памяти многобайтовых значений. Существуют два способа размещения байтов числа в слове: начиная со старшего или младшего конца.

Рассмотрим варианты хранения числа 0*04040201:

В компиляторах таки архитектурные особенности компьютеров учтены о полностью прозрачны для программистов. Однако разница между двумя соглашениями может сделать программу непереносимой.


7. Управляющие структуры.

7.1. Операторы выбора.

Операторы выбора используются для создания нескольких направлений работы программы.

Обобщенный оператор выбора называется switch- оператором в языке С, С++ и case- оператором в других языках. Switch- оператор состоит из выражения, и оператора, назовем его statement_i, для каждого возможного значения case_i.

switch (выражение-expression) {

case value_1:

statement_1;

break;

case value_2:

statement_2;

break;

………………….

default:

statement_N;

break;

}

Номер метки value_i и выполняемый оператор statement_ i устанавливается из результата выполнения выражения expression. После выполнения каждого оператора statement_ i идет оператор break. Если он отсутствует, то выполнение “проваливается” на следующий оператор case. Если вычисленного значения выражения expression нет в списке value_i, то выполняется оператор statement с меткой default.

Порядок работы оператора выбора switch:

1. Вычисляется выражение-expression в круглых скобках.

2. Выполняется метка case value_i, совпадающая с тем значением, которое было найдено в пункте 1. Если ни одна из case value_i не соответствует этому значению, выполняется метка default. Если метки default нет, то выполнение оператора switch прерывается.

3. Выполнение switch прерывается, когда встречается инструкция break или когда достигается конец switch.

7.1.1. Реализация оператора switch.

Compute R1,exp2 – вычислить expression и поместить в регистр R1.

jump_eq R1#value_1, L1 – сравнить значения в R1 и value_1. Если равны, то идни на метку L1.

jump_eq R1, #value_2, L2

………………………

default_statement_N - выполнение команды default.

jump End_switch

L1: statement_1 - команды для statement_1.

jump End_Case

L2: statement_2

jump End_Case

……………………….

jump End_Case

7.2. Условные операторы

В общем случае оператор if выглядит так:

if (условие) инструкция1;

Либо

if (условие)

инструкция1;

else

инструкция2;

Если условие истинно, то выполняется инструкция1. Если условие ложно, то инструкция1 пропускается и в зависимости от используемого оператора, либо продолжается выполнение программы со следующего оператора, либо выполняется инструкция2.

Условный оператор – это частный случай операторов case или switch, в котором выражение имеет булев тип.

7.2.1. Реализация оператора if.

Реализацию условного оператора рассмотрим на примере:

if (x>y)

statement_1;

else

statement_2;

Реализация:

сompute R1, expression – Определение значения х-у и размещение его в R1.

jump_eq R1, L1 - Сравнение значения в R1 с нулем.

statement_1 - Выполняется, если х-у>0.

jump L2 - Переход к метке L2. (продолжение программы)

L1: statement_2 - Выполняется, если х-у<0.

L2: - Продолжение программы.

7.3. Операторы цикла.

Вид оператора цикла while:

while (условие)

statement;

С начало вычисляется условие. Если оно истинно, то выполняется инструкция statement, и управление передается в начало цикла while. Процесс повторяется до тех пор, пока условие не станет ложно.

Оператор do представляет собой вариант оператора while. Но вместо проверки условия в начале цикла, в операторе do оно производится в конце. Поэтому тело оператора do выполняется по крайней мере один раз, тогда как у while оно вообще может не выполняться.

Вид оператора do:

do {

statement;}

while (условие);

продолжение программы.

7.3.1. Реализация операторов while и do.

Реализация while:

L1: compute R1, expr - Вычисление условия (expression) и помещение его в R1.

jump_zero R1, L2 - Выйти из цикла, если условие ложно (false).

statement - Тело цикла.

jump L1 - Перейти на проверку завершения цикла.

Реализация оператора do:

L1: statement - Выполнение тела цикла.

compute expr - Вычисление условия expression.

jump_nz L1 - Если условие (expression) истина, то идти на L1. Иначе выполняется следующий оператор.

7.4. Оператор цикла for.

Общий вид оператора for:

for (начальное условие; условие - expression; индексное выражение)

statement;

продолжение программы.

Семантика оператора for:

1. Выполняется начальное условие по инициализации индекса цикла.

2. Проверяется условие expression. Если оно истинно, то выполняется тело оператора for statement и управление передается в начало цикла. При этом индекс цикла в индексном выражении увеличивается, после чего проверяется условие expression.

3.Процесс пункта 2 продолжается до тех пор, пока условие expression не станет ложно.

Пример; sum=0;

for (i=1; i<=10;iI++)

sum+=i;

продолжение программы.

7.4.1. Реализация оператора цикла for.

Рассмотрим цикл for в следующем виде;

for (i=expression_1; expression_2; i++)

statement;

Это компилируется последовательностью операторов:

compute R1, expr_1

store R1, i - Установить нижнюю границу индексации, загрузив значение i в R1.

L1: compute R2, expr_2 - Установить верхнюю границу внутри цикла и поместить expr_2 в R2.

jump_gt R1, R2, L2 - Если значение в R1 больше значения в R2, то перейти на метку L2 (продолжение программы)

statement - Выполнение тела цикла for.

lоad R1, i - Занести значение i в регистр R1.

incr R1 - Увеличить значение в R1 на единицу (R1+1).

store R1, i - Установить новую нижнюю границу индексации в R1.

jump L1 - Перейти к метке L1.

L2: - Продолжение программы.

Циклы for – наиболее часто встречающиеся источники не эффективности в программах, потому что небольшие различия в языках или небольшие изменения в использовании оператора могут иметь серьезные последствия. Во многих случаях оптимизатор в состоянии решить эти проблемы, но лучше не доверяться оптимизатору


8. Подпрограммы

8.1. Процедуры и функции

Подпрограмма- это сегмент программы, к которому можно обратится из любого места программы.

Подпрограммы, которые возвращают значение, называются функциями (function), а те, что не возвращают,- процедурами (procedures). Язык С не имеет отдельного синтаксиса для процедур.

Формальное объявление функции:

тип имя (список_объявлений_параметров)

{

statement;

}

Тип определяет значение возвращаемой функции. В языке С++, С процедура обозначается через функцию с возвращаемым типом void.

Синтаксические параметры- это идентификаторы, используемые внутри тела функции. Их часто называют формальными параметрами, учитывая то, вместо них будут подставлены фактические значения при вызове функции.

Обращение к процедуре в языке С, С++:

proc (x, y); sin(x); sor (…);…

Разница между процедурой и функцией состоит в их назначении. Вызов процедуры- это оператор. Вызов функции является не оператором, а элементом выражения:

a=x+f(r,s)+y;

Тип результата функции должен соответствовать типам в выражении, если в языке не предусмотрено неявное преобразование типов.

8.2. Передача параметров подпрограмме

Формальный параметр - это переменная, объявленная внутри подпрограммы. Очевидно, что значение фактического параметра нужно копировать в то место памяти, которое выделено для формального параметра. Этот механизм передачи параметров называется "семантикой copy-in" (копирование в) или "вызовом по значению" (call-by-volue).

Условная схема семантики copy-in для процедуры:

proc (f) - объявление процедуры

{ statement;}

proc (14); - обращение к процедуре

или

proc (2+3*4);

Преимущества семантики copy-in:

  1. Поскольку передается только копия фактического параметра, подпрограмма не может его испортить в вызывающей программе.
  2. Фактические параметры могут быть константами, переменными или выражениями.
  3. Начальные затраты на копирование делаются один раз. Все остальные обращения к формальному параметру являются обращениями к локальной копии.

Другие механизмы передачи параметров созданы с целью изменения фактических параметров.

Условная схема семантики copy-out:

proc (int F)

{

F=2+3*4;

}

………………

int A;

proc (A);

Фактический параметр, используемый в copy-out, должен быть переменной. Подпрограмме передается адрес фактического параметра, который она сохраняет. Формальный параметр использует временную локальную переменную. Когда выполнение подпрограммы завершено, значение F копируется в переменную А, на которую указывает сохраненный адрес.

Однако рассмотренные механизмы передачи параметров не эффективны при передачи больших массивов. Например для массива из 50000 целых чисел может просто не хватить памяти для копии. Решить проблему позволяет механизм "вызов по ссылке" или "семантика ссылки". Он состоит в том, чтобы передавать адреса фактических параметров и обращаться к параметрам косвенно. Вызов подпрограммы имеет короткую форму, потому что для каждого параметра передается только указатель небольшого, фиксированного размера.

Условная схема "вызов по ссылке":

Адрес F(addr(F)) содержит

номер ячейки А, в которой

хранится значение 14.

int i=4; - глобальная переменная

void proc (int&I, float f)

{

i=i+(int) f; - доступ к ссылке

}

proc (i, 45.0); - не нужна операция получения

адреса.

&- знак (символ), обозначающий адрес.

Добавление: Пример программы для copy-out.

int i=4; - глобальная переменная

void proc (int*i, float f)

{

* i = *i+(int) f;

}

proc (&i, 45.0); - понадобилось указать &- адрес

i.

8.3. Рекурсия.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: