Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Zla9_Kolu4ka
2 / 2 / 1
Регистрация: 28.08.2013
Сообщений: 409
#1

Константный указатель на массив - код не работает - C (СИ)

17.08.2014, 22:58. Просмотров 619. Ответов 5
Метки нет (Все метки)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
char  const tmp_obj[] = "abc";//константный указатель на массив, т.е не можем менять адрес
 
void f(const char* str){
    str[1]='h';//почему ошибка, адрес ведь не поменялся??
    printf("str = %s    \n", str);
}
 
int main(){
    f(tmp_obj);
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2014, 22:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Константный указатель на массив - код не работает (C (СИ)):

Как записать константный указатель на указатель
Добрый вечер. Вот данная запись говорит. Указатель на константный...

Почему нельзя двумерный массив преобразовывать в указатель на указатель?
Имеем массив: int daytab; при передаче его в функции количество столбцов...

Сформировать одномерный массив из матрицы (Не работает код)
Помогите пожалуйста Мне для решения задачи нужно из двумерного сделать...

Не могу через указатель на двумерный массив вернуть все значения в другой массив
Не могу через указатель на двумерный массив вернуть все значения в другой...

Что значит константный указатель на объект, указатель на константный объект, и как это можно использовать?
Подскажите, что значит константный указатель на объект, указатель на...

Константный указатель или указатель на константу?
Привет всем.Уважаемые программисты пожалуйста скажите чем отличать когда...

5
Убежденный
Ушел с форума
Эксперт С++
15941 / 7252 / 1176
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
17.08.2014, 23:03 #2
'const type *' или 'type const *' - это указатель на константный type.
Чтобы указатель был константный, надо так: 'type * const'.
Ну а константный указатель на константный type делается следующим образом:
'type const * const'.
1
Zla9_Kolu4ka
2 / 2 / 1
Регистрация: 28.08.2013
Сообщений: 409
17.08.2014, 23:10  [ТС] #3
написал и сразу понял, что фигню написал
почему выдает warning: разные квалификаторы "const"
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
char  const tmp_obj[] = "abc";
 
void f(char* const str){
    printf("str = %s    \n", str);
}
 
 
int main(){
    f(tmp_obj);
    system("pause");
    return 0;
}
0
BlackIce
310 / 172 / 73
Регистрация: 18.01.2014
Сообщений: 387
17.08.2014, 23:47 #4
Цитата Сообщение от Zla9_Kolu4ka Посмотреть сообщение
почему выдает warning: разные квалификаторы "const"
Ну елы-палы.

C
1
2
3
void f(char const *str){
    printf("str = %s    \n", str);
}
или
C
1
2
3
void f(char const str[]){
    printf("str = %s    \n", str);
}
0
Zla9_Kolu4ka
2 / 2 / 1
Регистрация: 28.08.2013
Сообщений: 409
18.08.2014, 00:04  [ТС] #5
Чтобы указатель был константный, надо так: 'type * const'.
Это что получается:
C
1
2
char const *str//константный указатель
char* const str//а это тогда что??, судя по цитате константный указатель, а почему тогда не хотит пахать???
0
BlackIce
310 / 172 / 73
Регистрация: 18.01.2014
Сообщений: 387
18.08.2014, 00:06 #6
Цитата Сообщение от Zla9_Kolu4ka Посмотреть сообщение
char* const str//а это тогда что??
Вдумчиво и внимательно читаем сообщение Убежденного:
Цитата Сообщение от Убежденный Посмотреть сообщение
Чтобы указатель был константный, надо так: 'type * const'.
Цитата Сообщение от Убежденный Посмотреть сообщение
'type const *' - это указатель на константный type.
1
18.08.2014, 00:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2014, 00:06
Привет! Вот еще темы с решениями:

Константный указатель
Здравствуйте! Имею класс - MyClass. Константный указатель на него: const...

Константный указатель
Для записи через * T * const name; Для записи через ???

Константный указатель
Почему в данном примере константный указатель может быть использован для вывода...

Константный указатель на целое
Начал осваивать С++ по книжке Страуструпа, одно из первых заданий: напишите...


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

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

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