Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример взаимодействия функций с использованием глобальных переменных




Пример взаимодействия функций без использования глобальных переменных

Результат работы программы

Пример

Результат работы программы

Пример программы

Глобальные и локальные объекты

Результат работы программы

Пример

Результат работы программы

Пример

Пример программы

Общая форма записи

sizeof(объект)

 

 

#include <stdio.h>                
#define pi 3.14159625                
main() { int x;                  
                 
printf( "\n Размер памяти под целое число с Id байт.",
sizeof( int));                
printf( "\n Размер памяти под тип double %d байт.",

  sizeof(double));  
  printf("\n Размер памяти под переменную %d байт.",
  sizeof(x));  
  printf("\n Размер памяти под константу pi %d байт.",
} sizeof(pi));  

Операция «запятая» («,») предназначена для связывания между собой выражений. Список, разделенный запятой, трактуется как единое выражение и вычисляется слева направо.

 

main()  
{  
int x=3, у;  
у=3, 4*х;  
printf ("\n Значение y=%d.", у);
}  

Значение у=12

main()

{

int i, b;

for (i=0, b=l; i <= 5; i++


{


b=b+i;

printf("\n Значение b=%d.",b);


 


Значение b=l

Значение b=2

Значение b=3



Значение Ь= = 4.
Значение Ь= =5.
Значение Ь= = 6.

Глобальными называются объекты, объявление которых дано вне функции. Они доступны (видимы) во всём файле, в котором они объявлены, а также во всех внешних файлах (модулях).

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

В Си существует понятие времени жизни объекта, которое бывает глобальным или локальным. Объект с глобальным временем жизни характеризуется тем, что в течение всего периода выполнения программы с ним связана определённая ячейка оперативной памяти и какое-то значение. Объекту с локальным временем жизни выделяется новая ячейка оперативной памяти при каждом вхождении в блок, в котором объявлен этот объект. Когда выполнение блока завершается, память, выделенная под локальный объект, освобождается, и объект теряет своё значение.

#include <stdio.h> void autofunc(void)

{

int k=l;

printf("\n k = %u", k); k=k+l; }

main()

{

int i;

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

}


 

к=  
к=  
к=  
к=  
к=  
к=  

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

 

#include <stdio.h>  
int k=l;  
void autofunc(void)  
{    
  printf("\n k = %u' ', k);
  k=k+l;  
}    
main()  
{ int i;  
  for (i = 0; i<=5; i + +)
  autofunc ();  
}    

 

k =  
k =  
k =  
k =  
k =  

к = б

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

 

#include <stdio.h>  
int func(int xl, int x2)  
{  
int y;  
y=xl+x2;  
return(y);  
}  
main()  
{  
int xl, x2;  
c=func(xl, x2);  
/* вызов функции */
}  

 

#include <stdio.h>  
int xl, x2;    
int func(void)    
{    
y=xl+x2;    
return(y);    
}    
main()    
{    
xl=...; /* изменение значений */
Xz, •••/' / глобальных */  
/* переменных */  

  ...    
  c=func(); /* вызов функции */
}      

Программа имеет недостаток: функция func не имеет формальных параметров, обмен информацией между функциями организован через глобальные переменные х\, х2. Существует опасность, что переменные х\, х2 будут случайно изменены в вызываемой функции.




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 347; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.