Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lekcii_1_10 / Лекция 07.pptx
Скачиваний:
67
Добавлен:
21.05.2015
Размер:
261.93 Кб
Скачать

Функции

Функции — это строительные блоки C++, а потому без полного их понимания невозможно стать успешным С++-программистом.

Мы рассмотрим правила действия областей видимости функций, рекурсивных функций, некоторых специальных свойств функции main(), инструкции return и прототипов функций.

Переменные, объявленные внутри функции, называются локальными

В C++ переменные могут быть включены в блоки. Это означает, что переменную можно объявить внутри любого блока кода, после чего она будет локальной по отношению к этому блоку.

Самым распространенным программным блоком является функция. В C++ каждая функция определяет блок кода, который начинается с открывающей фигурной скобки этой функции и завершается ее закрывающей фигурной скобкой. Код функции и ее данные — это ее "частная собственность", и к ней не может получить доступ ни одна инструкция из любой другой функции, за исключением инструкции ее вызова. (Например, невозможно использовать

инструкцию goto для перехода в

#include <iostream> using namespace std; void f1();

int main()

{

char str[] = "Это - массив str в функции main().";

cout << str << '\n';

f1();

cout << str << '\n';

return 0;

}

void f1()

{

char str[80];

cout << "Введите какую-нибудь строку: ";

cin >> str;

cout << str << '\n';

}

int main()

{

int choice;

cout << "(1) сложить числа или ";

cout << "(2) конкатенировать строки?: ";

cin >> choice;

if(choice == 1) {

int a, b; /* Активизируются две int-переменные. */

cout << "Введите два числа: ";

cin >> а >> b;

cout << "Сумма равна " << a+b << '\n';

}

else {

char s1 [80], s2[80]; /* Активизируются две строки.

*/

cout << "Введите две строки: ";

cin >> s1;

cin >> s2;

strcat(s1, s2);

cout << "Конкатенация равна " << s1 << '\n';

}

return 0;

int main()

{

int choice;

cout << "(1) сложить числа или ";

cout << "(2) конкатенировать строки?: ";cin >> choice;

if(choice == 1) {

int a, b; /* Активизируются две int-переменные. */cout << "Введите два числа: ";

cin >> а >> b;

cout << "Сумма равна " << a+b << '\n';

}

else {

char s1 [80], s2 [80]; /* Активизируются две строки.

*/

cout << "Введите две строки: ";

cin >> s1; cin >> s2;

strcat (s1, s2);

cout << "Конкатенация равна " << s1 << '\n';

}

a = 10; // *** Ошибка *** Переменная а здесь

неизвестна!

#include <iostream> using namespace std; int main()

{

int i, j;

i = 10;

j = 100;

if(j > 0) {

int i; // Эта переменная i отделена от внешней переменной i.

i = j /2;

cout << "Внутренняя переменная i: " << i <<

'\n';

}

cout << "Внешняя переменная i: " << i << '\n';

return 0;

}

Вот как выглядят результаты выполнения этой программы.

Внутренняя переменная i: 50

Внешняя переменная i: 10

Локальные переменные не хранят своих значений между

активизациями.

#include <iostream> using namespace std; int main()

{

cout << "Введите число: ";

int a; // Объявляем одну переменную.

cin >> a;

cout << "Введите второе число: ";

int b; // Объявляем еще одну

переменную.

cin >> b;

cout << "Произведение равно: " << а*Ь << '\n';

return 0;

}

#include <iostream> using namespace std; int main()

{

// Переменная i локальная для цикла for.

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

cout << i << " ";

cout << "в квадрате равно " << i * i <<

"\n";

}

// i = 10; // *** Ошибка *** -- i здесь неизвестна!

return 0;

}

Соседние файлы в папке lekcii_1_10