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

Обьявление локальных переменных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Записать текст в массив http://www.cyberforum.ru/cpp-beginners/thread638562.html
хочу скрипт , которая пишет предложение сверху вниз . надо присвоить предложение в массив . вот такой код : #include <iostream> using namespace std; main() { cout << "Enter text : "; char string; cin>> string; int i = 0;
C++ Обратный связный список Всем привет! Я уже голову сломал, но никак не могу создать связный список, который помещает новый элемент не в конец списка, а в начало... Помогите плз:) #include<iostream> using namespace std; struct link { int data; http://www.cyberforum.ru/cpp-beginners/thread638553.html
Считывание до конца файла C++
В каждой строке файла 2 целых числа. Нужно считать по 2 числа до конца файла и выводить в каждую строку сумму этих двух чисел. Раньше с файлами в С++ не работал. Можете объяснить как считывать ,выводить данные и какие команды что делают? Искал в интернете нормальные описания, но не нашёл. Пожалуйста, помогите разобраться:)
Стек размывает массив C++
Код: #include <iostream> using std::cout; using std::cin; using std::cerr; using std::endl; using std::ios; #include <fstream>
C++ Непонятно работает функция - член класса http://www.cyberforum.ru/cpp-beginners/thread638530.html
Задача создать телефонный справочник с использованием бинарного дерева. Проблема возникает при попытке найти абонента по имени. Создал функцию-члент для поиска Tree::Surch_name. Внутри неё для перебора всех элементов используется функция Tree::Surch_Tree_Name в которую передаю указатель на корень, имя которое неоходимо найти и указатель - cash на элемент если он найден. Внутри функции...
C++ Расположение консольной программы Как программно узнать расположение КОНСОЛЬНОЙ исполняемой программы? В гугле только оконные приложения подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
17.08.2012, 00:04     Обьявление локальных переменных
Окей. Я посмотрел в стандарт. Это всё неправда про то, что нельзя объявлять.

После слова if или switch в скобках указывается условие (те же правила для условий switch, while и второго элемента for, но не для do-while). Условие — это или выражение (приводимое к bool), или объявление переменной. Если это выражение, то для выбора используется его значение. Если это объявление, то для выбора используется значение этой переменной. Переменная, объявляемая в этих скобках, является локальной для всего if или switch-оператора (то есть её нельзя переопределять). Если неясно, выражение это или объявление, оно считается объявлением.

То есть
вот это
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
int main()
{
  if (int x = 42) {
    std::cout << x;
  }
  else {
    std::cout << "NO";
  }
}
должно печатать 42.

Внутри switch можно объявлять переменные (равно как и в его условии, но только одну). Там обычные выражения со всеми вытекающими. Другое дело, что их инициализация зависит от того, на какой case мы прыгнем. То есть в
таком случае
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
  int c = 2;
  switch (c) {
  case 1:
    int x = 5;
    std::cout << x;
  case 2:
    int y = 6;
    std::cout << x + y;
    break;
  case 3:
    std::cout << 3;
  }
}
код для инициализации переменной x не будет выполнен и будет выведено чёрти что. Тот же gcc ругается на это как на ошибку, потому что это всё же серьёзный говнохитрокод, но ему можно заткнуть рот и получить свой undefined behavior, который должен быть по стандарту.
 
Текущее время: 23:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru