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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
#1

Локальная переменная - C++

24.08.2012, 20:40. Просмотров 356. Ответов 5
Метки нет (Все метки)

Если в функции объявляется символ,например так:

C++
1
2
3
4
5
char f(void){
  char ch;
  ch = getchar();
  return ch;
}
,то можно ли вернуть символ так, как это сделал я. ch уйдёт из области видимости эта ошибка?
Как тогда вернуть символ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2012, 20:40     Локальная переменная
Посмотрите здесь:

Статическая локальная переменная - C++
Помогите пожалуйста привести пример использования статической локальной переменной в функции

Неинициализированная локальная переменная - C++
#include "stdafx.h" int main() { struct queue { int data; queue *next; }; queue *begin; queue *end;

Локальная неинициализированная переменная - C++
Прочитал в учебнике, что обращение к локальной неинициализированной переменной это ошибка, ради интереса попробовал набросать следующее:...

Использована неинициализированная локальная переменная - C++
error C4700: использована неинициализированная локальная переменная "w". Даже если w объявлять как глобальную переменную то прога все равно...

Использована неинициализированная локальная переменная - C++
#include <math.h> #include <iostream> #include <conio.h> #include <stdlib.h> #include...

Локальная переменная внутри цикла - C++
Добрый день ! При вызове функции void println (int i, int ident) { cout << i; if (ident) ...

Использована неинициализированная локальная переменная - C++
Друзья, подскажите пожалуйста в чём проблема? Пишу программу, где среди трёх заданных чисел необходимо найти минимальное и...

Ошибка: использована неинициализированная локальная переменная - C++
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? #include <iostream> int main () { int m, j = 0; for (int...

Ошибка: использована неинициализированная локальная переменная - C++
Такое задание: Даны две строки, содержащие не более 100 символов. Строки состоят из слов, разделенных пробелами. Распечатать строку,...

Неинициализированная локальная переменная - исправить ошибку - C++
не могу устранить ошибку "использована неинициализированная локальная переменная a" #include "stdafx.h" #include<iostream> using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 1
24.08.2012, 20:56     Локальная переменная #2
Все в этом коде правильно.
По return ch; делается копия переменной ch,
которая и возвращается в качестве результата.
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
24.08.2012, 20:59  [ТС]     Локальная переменная #3
А если будет так:
C++
1
2
3
4
5
char *f(){
  char str[30];
  strcpy(str,"qwee");
  return str;
}
Так тоже верно?
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
24.08.2012, 21:19     Локальная переменная #4
А вы как думаете? Всё точно так же: делается копия указателя на массив, она передаётся наружу. А вот сам массив удаляется.
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
24.08.2012, 21:35  [ТС]     Локальная переменная #5
т.е. не верно?
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
24.08.2012, 21:40     Локальная переменная #6
Да, обращение по полученному указателю — undefined behavior.
Yandex
Объявления
24.08.2012, 21:40     Локальная переменная
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru