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

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

Войти
Регистрация
Восстановить пароль
 
Scorpion
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 19
#1

Дебильные указатели - C++

31.05.2014, 23:22. Просмотров 228. Ответов 7
Метки нет (Все метки)

Здравствуйте, граждане. Я начинающий программист на AcrionScript. Но в универе учу С++ и понимаю, что нужно освоить и этот язык, чтобы считать себя полноценным программистом. Но я не могу разобраться в этим дебильных указателях. В АС3 такого нет.

Вот на пример, я в классе прописал приватную переменную int b, а в конструкторе записал чтоб устанавливало b = 0 - все нормально.

Прописал в классе приватную переменную char name, а в конструкторе name = "Alex" - уже не пашет, требует, чтоб я записал переменную как char *name.

Вроде одна и та же операция присваивания. Почему тогда для int переменной не нужно использовать указатель, а для типа char нужно ????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2014, 23:22     Дебильные указатели
Посмотрите здесь:

Используются ли на практике указатели на указатели объектов? - C++
Имеются ввиду указатели именно на объекты, а не динамические массивы. Например такой: Object** obj; А как насчёт такого: Object***...

Константные указатели и указатели на константу - C++
Чем они, собственно говоря, отличаются? Поясните, пожалуйста. Не знаю, как так получилось, что в разных источниках - разные...

Указатели - C++
Есть задание,я сделала через массив,а мне нужно переделать через указатели. #include <iostream.h> #include <stdio.h> #include...

Указатели. - C++
Как написать эту программу через указатели??? #include <stdio.h> #include <conio.h> int main() { int a; int b; ...

Указатели в c++ - C++
Задача: Дан текст, заканчивающийся точкой. Напечатать этот текст, удалив из него все цифры и знаки «+» или «–». Попробовала написать...

Указатели - C++
Что происходит в данном случае? for (unsigned int i = 0; i < n; i++) p_array.entry_pt = NULL; for (unsigned int...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Psilon
Master of Orion
Эксперт .NET
5882 / 4779 / 633
Регистрация: 10.07.2011
Сообщений: 14,399
Записей в блоге: 5
Завершенные тесты: 4
31.05.2014, 23:28     Дебильные указатели #2
Scorpion, потому что строка - это массив символов, а не один символ, поэтому
C++
1
char string[] = "Hello";
ну а массивы и указатели в С - практически одно и то же, поэтому можно записать и таким образом:
C++
1
char *string = "Hello";
Jewbacabra
Эксперт PHP
2261 / 1925 / 722
Регистрация: 24.04.2014
Сообщений: 5,599
31.05.2014, 23:29     Дебильные указатели #3
Цитата Сообщение от Scorpion Посмотреть сообщение
дебильных указателях
с таким подходом с++ не освоить
Цитата Сообщение от Scorpion Посмотреть сообщение
name = "Alex" - уже не пашет
почитай про представление строк в с и все поймешь
Psilon
Master of Orion
Эксперт .NET
5882 / 4779 / 633
Регистрация: 10.07.2011
Сообщений: 14,399
Записей в блоге: 5
Завершенные тесты: 4
31.05.2014, 23:30     Дебильные указатели #4
Scorpion, и да, без указателей в С/С++ вы и шагу не ступите, поэтому разбирайтесь. ActionScript - это фигня, как и большинство скриптовых языков.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.05.2014, 23:52     Дебильные указатели #5
Цитата Сообщение от Psilon Посмотреть сообщение
C++
1
char *string = "Hello";
Правильнее будет так (чтобы избежать случайных модификаций):
C++
1
const char *string = "Hello";
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
01.06.2014, 09:43     Дебильные указатели #6
Цитата Сообщение от Psilon Посмотреть сообщение
char string[] = "Hello";
Здесь создается массив длиной 6 символов и в нее копируется текст Hello
Цитата Сообщение от Psilon Посмотреть сообщение
char *string = "Hello";
Здесь массив не создается и string - это указатель на константную строку.
Scorpion
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 19
01.06.2014, 13:10  [ТС]     Дебильные указатели #7
Ясненько, благодарю. Вот в Яве тоже тех указателей нет, но это весьма серьезный язык программирования.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2014, 13:35     Дебильные указатели
Еще ссылки по теме:

Указатели - C++
Написать программу на языке C Задание: введите с клавиатуры 3 числа и выведите их на экран в порядке возрастания. Программу написать с...

Указатели - C++
С одномерным массивом, состоящим из n вещественных элементов, вы-полнить следующее: Преобразовать массив таким образом, чтобы сначала...

Указатели - C++
Что это означает? while(*p), if(*p) это типа проверка есть ли у указателя значение? или что-то другое?

Указатели - C++
4.Создать указатель на указатель и вывести на экран Адрес в ОП этого указателя Значение этого указателя - как ??? Сделал вот...


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

Или воспользуйтесь поиском по форуму:
Psilon
Master of Orion
Эксперт .NET
5882 / 4779 / 633
Регистрация: 10.07.2011
Сообщений: 14,399
Записей в блоге: 5
Завершенные тесты: 4
01.06.2014, 13:35     Дебильные указатели #8
Scorpion, то, что они от вас скрыты, не значит, что их нет. По большому счету их там для пользователя (под пользователем я имею ввиду программиста на яп) нет просто потому, что сборщик мусора это такая неприятная штука, которая тасует память как ему хочется, и смысла в указателях чуть менее, чем никакого. Поэтому вводится понятие "ссылки" - дескриптора объекта, по которому система может получить указатель. А работа с указателями напрямую требует фиксации памяти и запрету сборщику работать (в том же шарпе, где указатели можно использовать в небезопасном контексте, есть ключевое слово fixed, запрещающее сборщику перемещать объекты), что ведет в фрагментированности памяти и прочим неприятным штукам
Yandex
Объявления
01.06.2014, 13:35     Дебильные указатели
Ответ Создать тему
Опции темы

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