Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.12.2015
Сообщений: 17
1

Объяснить различия в работе указателей на целое число и указателей на const char (строки в стиле Си)

26.12.2015, 03:28. Просмотров 507. Ответов 1
Метки нет (Все метки)

Уважаемые программисты, возникло несколько вопросов касательно указателей.
  1. Почему при выводе указателя на int нужна звёздочка (*), а при выводе указателя на массив типа char нет?
  2. Почему не нужен значок амперсанда (&) для указателя на массив.
  3. Почему при выводе массива значений int, звёздочка (*) всё же нужна, а при выводе массива значений char нет?
C++
1
2
3
4
5
6
7
8
int a = 5;
    int *p = &a;
    cout << *p << endl;
    char *p1 = "I love school";
    cout << (p1+3);
    int d[3] = {1,2,3};
    int *p2 = d;
    cout << *(p2+1);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2015, 03:28
Ответы с готовыми решениями:

Различия указателей char* от указателей других типов
Помогите пожалуйста разобраться! Прочитал раздел про указатели и даже вроде бы понял. Что...

Напишите программу, присваивающую значения элементов списка указателей на символьные строки в стиле С (тип char* ) элементам вектора строк
Напишите программу, присваивающую значения элементов списка указателей на символьные строки в...

Cоздать и заполнить массив строк в стиле Си (квадратную матрицу указателей на char)
Нужно создать массив символьных указателей на 10 элементов и выполните вывод всех строк в 10...

Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей
Задача: создать специфицированный шаблон функции, принимающей массив указателей на char и...

1
528 / 430 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
26.12.2015, 03:46 2
Цитата Сообщение от 96and Посмотреть сообщение
Почему при выводе указателя на int * нужна а при выводе указателя на массив типа char нет?
Такая уже реализация стандартной библиотеки - для const char* у потока переопределен operator<<
Цитата Сообщение от 96and Посмотреть сообщение
И почему не нужен значек амперсанта для указателя на массив.
Переменная-массив хранит в себе адрес первого элемента массива, как указатель. Поэтому ты как бы копируешь значение одного указателя в другой.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2015, 03:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей
Нужно создать специализацию для шаблона, которая принимает массив указателей на строки и количество...

Шаблон, специализация: поиск самой большой строки в массиве указателей на char
Есть почти готовое решение,помогите пожалуйста доделать,немного не понимаю #include &lt;cstdlib&gt;...

Приведение указателей в стиле си
Здравствуйте, это наверное самый дурацкий вопрос но что значит скобочки в c++ т.е вот например дан...

array char* to char* (значения массива указателей в один указатель)
Как сложить(или вывести в формате char*) все значения массива указателей(char *) воедино, то есть...

Почему у массивов типа char может быть утечка памяти, а у указателей char с выделенной памятью - нет?
Тут будет утечка памяти: #include&lt;iostream&gt; using namespace std; int main() { char name;...

Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей?
Доброго времени суток! Рассматриваю пример (из Лафоре) сортировки массива указателей на объекты,...


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

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

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