С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
BTR
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
#1

Когда переменная будет const? - C++

04.02.2011, 22:01. Просмотров 1189. Ответов 21
Метки нет (Все метки)

Всем привет, вот меня заинтересовал вопрос, я объявил char test = "t";
и компилятор говорит, что это const, когда переменная при таком объявлении будет являться не char test, а const char test? Заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2011, 22:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Когда переменная будет const? (C++):

const переменная - C++
Вопрос по коду ниже. Насколько я знаю const переменная, это переменная по имени которой нельзя перезаписывать область памяти. Я завёл...

Хочу разобраться с прототипами функций, const но переменная изменяется - C++
Оригиналы хэш функций тут - назовем это ENG статьёй Я так подозреваю написано это на С, но вполне без изменений запустится на С++ ...

int const * const foo(const int* param) const - разъясните значение квалификаторов - C++
int const * const foo(const int* param) const -----1------2----------3----------------4 1: ? 2: делает содержимое массива или...

Переменная double отображается неправильно когда ее значение = 0 - C++
Написал код, все работает, но при определенных условиях переменная double со значением 0 отображается как какое то число с экспонентой,...

Когда приравниваю переменную к функции, переменная становится равна нулю - C++
Есть функция, которая считает выражение и возвращает результат. И есть переменная, которая к этой функции приравнивается. По отдельности...

Когда будет верно условие? - C++
маненький вопрос, при каких начениях будет верно условие ((ac^bc)&~(ac|cc))!=0 не могу никак разобраться с этими поразрядными...

21
BTR
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
04.02.2011, 22:26  [ТС] #16
но адрес же передается с помощью &, а так пишет ошибку, вот пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void snf(Student* copy) {
    
 
 
}
 
 
 
 
void main(int Num, char** Argv) {
 
    setlocale(LC_ALL ,"Russian");
    Student* s = new Student("Chester");
    snf(&s);
    system("pause >> void");
}
0
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
04.02.2011, 22:35 #17
Три способа передачи параметра в функцию:
1.По значению
C++
1
2
3
4
5
6
7
8
9
10
11
void snf(Student copy) 
{
;
}
void main(int Num, char** Argv) {
 
        setlocale(LC_ALL ,"Russian");
        Student s("Chester");
        snf(s);
        system("pause >> void");
}
2.По ссылке
C++
1
2
3
4
5
6
7
8
9
10
11
void snf(Student &copy) 
{
;
}
void main(int Num, char** Argv) {
 
        setlocale(LC_ALL ,"Russian");
        Student s("Chester");
        snf(s);
        system("pause >> void");
}
3.Через указатель
C++
1
2
3
4
5
6
7
8
9
10
11
void snf(Student *copy) 
{
;
}
void main(int Num, char** Argv) {
 
        setlocale(LC_ALL ,"Russian");
        Student s("Chester");
        snf(&s);
        system("pause >> void");
}
В первом случае создается копия объекта. Во втором и третьем вы работаете с тем же объектом посредством переданного в ф-цию адреса(копии не создается). При этом ф-ции абсолютно без разницы как вы при этом создаете объект - динамически ли, в стеке ли...
1
BTR
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
04.02.2011, 22:47  [ТС] #18
большое спасибо

Добавлено через 8 минут
Блин, как изменить значения первой переменной в данном случае?
C++
1
2
3
4
    char* yang = "This my pointer";
    char* cppy = yang;
    cppy = "mainhen";
    cout << yang;
0
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
04.02.2011, 23:11 #19
Цитата Сообщение от BTR Посмотреть сообщение

Добавлено через 8 минут
Блин, как изменить значения первой переменной в данном случае?
C++
1
2
3
4
        char* yang = "This my pointer";
        char* &cppy = yang;
        cppy = "mainhen";
        cout << yang;
1
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
05.02.2011, 11:45 #20
st_dent
у меня в книжке было написано, что при передаче по указателю создается его копия, но объект по этом адресу изменяется
1
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
05.02.2011, 12:05 #21
panicwassano, создается отдельный указатель, который указывает на ту же самую область памяти. Сама область памяти не копируется.
1
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
05.02.2011, 12:24 #22
Цитата Сообщение от st_dent Посмотреть сообщение
panicwassano, создается отдельный указатель, который указывает на ту же самую область памяти. Сама область памяти не копируется.
да я это и имел ввиду
0
05.02.2011, 12:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2011, 12:24
Привет! Вот еще темы с ответами:

clrscr(); не определен данный тип и const MAX_ELEMENTS = 4; отсутсвует тип int когда я его туда вписываю у меня больше ошибок вылазит - C++
#include &quot;stdafx.h&quot; #include &lt;ctime&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main() { const MAX_ELEMENTS = 4; ...

Не могу найти ошибку в коде, когда ввожу то переменная принимаєт только 1 символ. ето програма телефонная книг - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;fstream&gt; using namespace...

Чему будет равна переменная после выполнения следующего фрагмента программы? - C++
Пожалуйста, очень прошу помогите с тестами(( 2)Чему равна переменная m при p = 32 и p1 = 9 после выполнения следующего фрагмента...

char operator[](unsigned short offset) const; // что означает const? - C++
Собстенно вопрос уже озвучен :).


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

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