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

int const и const int в чем разница этих записей - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,221
20.08.2013, 20:26     int const и const int в чем разница этих записей #1
Попалась мне тут программа для выборочно сортировки, с ней все в принципе ясно, но я в ней встретил записи, которые раньше не встречал, сначала я хотел их записать по своему т.к. думал пишется как кому нравится, но оказалось что не получится, в частности там было:

C++
1
2
3
4
void sort_first(int const dlina, int * const massiv)
// я же хотел записать
void sort_first(const int dlina, const int * massiv)
// но ни чего не работало
так вот вопрос в чем разница между записями:

1. int const и const int
2. int * const и int const *

вот код самой программы, если кого интересует:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
void sort_first(int const dlina, int * const massiv)
{
int SamoeMaloe;
 
for (int i = 0; i < dlina - 1; i++)
{
SamoeMaloe = i;
 
for(int index = i+1; index < dlina; index++)
{
if (massiv[index] < massiv[SamoeMaloe])
{ SamoeMaloe = index; }
}
obmen(&massiv[i], &massiv[SamoeMaloe]);
}
}
 
 
void obmen(int * const elementOne, int * const elementTwo)
{
int temp = *elementOne;
*elementOne = *elementTwo;
*elementTwo = temp;
}
 
 
int main()
{
setlocale(LC_ALL,"");
 
const int dlina = 20; 
int massiv [dlina]= {12, 3, 6, 14, 7, 9, 2, 13, 11, 5, 0, 1, 8, 19, 16, 20, 17, 15, 18, 4}; 
 
cout << "Выводим текущий массив: "; 
for (int i = 0; i < dlina; i++) 
{ cout << massiv [i]<< ", "; } 
cout << "все..\n\n"; 
 
sort_first(dlina, massiv);
 
cout << "Выводим отсортированный массив: "; 
for (int i = 0; i < dlina; i++) 
{ cout << massiv [i]<< ", "; } 
cout << "все..\n\n"; 
 
system("pause");
return 0;
}


И еще вопрос по программе, вроде как в строчке 24 я принимаю значения которые я не могу изменить т.к. они const при этом я их изменяю (в частности меняю местами) или в этом и кроется смысл этих записей?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2013, 20:26     int const и const int в чем разница этих записей
Посмотрите здесь:

C++ Преобразовать int в const int для установки размера массива
C++ int\ volatile int \ const int
C++ error: invalid operands of types 'const int*' and 'const int*' to binary 'operator+'
C++ const int
C++ int const * const foo(const int* param) const - разъясните значение квалификаторов
C++ [BCC32 Error] File1.cpp(74): E2285 Could not find a match for 'student1::student1(const char *,int,int)'
Int* const или const int*? C++
C++ Чем отличаются выражения (const int[]){value} от (const int[]){100}

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.08.2013, 20:30     int const и const int в чем разница этих записей #2
1) Никакой.
2) Константный указатель и указатель на константу.
Соответственно в 24 строке вы принимаете два константных указателя на неконстантные данные.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
20.08.2013, 22:01     int const и const int в чем разница этих записей #3
Вот - http://www.cyberforum.ru/blogs/18334/blog87.html
Yandex
Объявления
20.08.2013, 22:01     int const и const int в чем разница этих записей
Ответ Создать тему
Опции темы

Текущее время: 09:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru