Форум программистов, компьютерный форум CyberForum.ru

Вопрос об области видимости переменной - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как узнать частоту wav файла, для функции Beep http://www.cyberforum.ru/cpp-beginners/thread1080484.html
Добрый день! Подскажите как из файла формата wav, взять массив частот в герцах, для команды Beep? Погуглив нашел БПФ, но так и неразобрался, что да как. Заранее багодарен
C++ Добавление элементов в список - ошибка Ошибка при добавлении элементов в список: #include <stdio.h> #include <stdlib.h> #include <string.h> struct node { char* value; node* next; }; http://www.cyberforum.ru/cpp-beginners/thread1080472.html
напишите функцию которая решает линейное уравнение ax+b=0 C++
напишите функцию которая решает линейное уравнение ax+b=0 и записывает результат в переменную передаваемую по ссылке. В случае нахождения одного корня функция возвращает 1,в случае бессконечного множества решений (a=0<b=0) -2 , в случае ввода неправильных данных (а=0)-3
C++ Напишите функцию, которая находит сумму элементов
имеется матрица вещественных чисел 4*4. Напишите функцию, которая находит сумму элементов на побочной диагонали
C++ напишите функцию которая решает линейное уравнение http://www.cyberforum.ru/cpp-beginners/thread1080454.html
напишите функцию которая решает линейное уравнение ax+b=0 и записывает результат в переменную передаваемую по ссылке. В случае нахождения одного корня функция возвращает 1,в случае бессконечного множества решений (a=0<b=0) -2 , в случае ввода неправильных данных (а=0)-3
C++ Найти произведение элементов, расположенных на главной диагонали. Массив в памяти разместить динамически (с использованием операций new и delete). Найти произведение элементов, расположенных на главной диагонали. народ помогите сделать задание подробнее

Показать сообщение отдельно
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
24.01.2014, 17:58     Вопрос об области видимости переменной
Цитата Сообщение от uranium_238 Посмотреть сообщение
как определить в какой области объявлена переиенная и когда она не будет действовать?
Она должна быть объявлена до обращения к ней, пример 1 aLarman-а очень нагляден:
C++
1
2
3
4
5
6
7
8
if()
{
int i = 0;
}
else 
{
i = 50;
}
Если условие 1 не выполняется то переход сразу на 7 строчку, т.е. минуя 3 строчку где она объявляется
Вообще объявление в строчке 3, то он будет видна в коде между 3 и 4 строчками. Вот еще один пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main()
{
int i=0;
if (true)
{
    int i=4;//Это переопределение i
    cout<<i<<endl; //здесь выдаст 4 и эта фактически последняя строчка где она видна с новым определение
}
cout<<i<<endl;// а здесь выдаст 0 т.к. то определение здесь уже не видно, т.к. мог быть случай что if не сработал, т.е не было бы нового определения int i=4; 
system("Pause");
}
Добавлено через 1 минуту
Цитата Сообщение от Tulosba Посмотреть сообщение
ну зачем так неосторожно. Можно ведь получить доступ к глобальной переменной внутри функции, даже если в функции определена своя, локальная переменная, с таким же именем.
см. оператор разрешения области видимости
Ну высший пилотаж
это не для новичков это тогда ошибки в их кодах искать можно годами)

Добавлено через 11 минут
Решил привести такой пример до кучи:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdlib>
#include <iostream>
int i=0;//глобальная переменная
using namespace std;
 
 
int main()
{
int i=0,k=1;
if (k==1)
{
    int i=4;//локальная переменная
    cout<<i<<endl;//Здесь 4 обращение к локальной
    cout<<::i<<endl; //Здесь 0 обращение к глобальной
}
cout<<i<<endl;////Здесь 0 обращение к глобальной
system("Pause");
}
 
Текущее время: 00:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru