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

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

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

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

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

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

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

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

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

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Через указатели на указатели посчитать сумму двух чисел и записать в третье - C++
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной - C++
Мой код. #include <iostream> #include <stdlib.h> #include<iomanip> using namespace std; void min_max(int*pa, int*pb,...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

Отсортировать массив и вывести на экран (массивы и указатели на указатели) - C++
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...

Написать программу сортировки через указатели на указатели - C++
Вот моя программа #include <iostream> #include <conio.h> #include <string> using namespace std; //Сортировка "пузырьком". ...

7
Psilon
Master of Orion
Эксперт .NET
5896 / 4793 / 634
Регистрация: 10.07.2011
Сообщений: 14,407
Записей в блоге: 5
Завершенные тесты: 4
31.05.2014, 23:28 #2
Scorpion, потому что строка - это массив символов, а не один символ, поэтому
C++
1
char string[] = "Hello";
ну а массивы и указатели в С - практически одно и то же, поэтому можно записать и таким образом:
C++
1
char *string = "Hello";
0
Jewbacabra
Эксперт PHP
2548 / 2141 / 804
Регистрация: 24.04.2014
Сообщений: 6,295
31.05.2014, 23:29 #3
Цитата Сообщение от Scorpion Посмотреть сообщение
дебильных указателях
с таким подходом с++ не освоить
Цитата Сообщение от Scorpion Посмотреть сообщение
name = "Alex" - уже не пашет
почитай про представление строк в с и все поймешь
0
Psilon
Master of Orion
Эксперт .NET
5896 / 4793 / 634
Регистрация: 10.07.2011
Сообщений: 14,407
Записей в блоге: 5
Завершенные тесты: 4
31.05.2014, 23:30 #4
Scorpion, и да, без указателей в С/С++ вы и шагу не ступите, поэтому разбирайтесь. ActionScript - это фигня, как и большинство скриптовых языков.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.05.2014, 23:52 #5
Цитата Сообщение от Psilon Посмотреть сообщение
C++
1
char *string = "Hello";
Правильнее будет так (чтобы избежать случайных модификаций):
C++
1
const char *string = "Hello";
0
zss
Модератор
Эксперт С++
6403 / 5969 / 1945
Регистрация: 18.12.2011
Сообщений: 15,387
Завершенные тесты: 1
01.06.2014, 09:43 #6
Цитата Сообщение от Psilon Посмотреть сообщение
char string[] = "Hello";
Здесь создается массив длиной 6 символов и в нее копируется текст Hello
Цитата Сообщение от Psilon Посмотреть сообщение
char *string = "Hello";
Здесь массив не создается и string - это указатель на константную строку.
1
Scorpion
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 19
01.06.2014, 13:10  [ТС] #7
Ясненько, благодарю. Вот в Яве тоже тех указателей нет, но это весьма серьезный язык программирования.
0
Psilon
Master of Orion
Эксперт .NET
5896 / 4793 / 634
Регистрация: 10.07.2011
Сообщений: 14,407
Записей в блоге: 5
Завершенные тесты: 4
01.06.2014, 13:35 #8
Scorpion, то, что они от вас скрыты, не значит, что их нет. По большому счету их там для пользователя (под пользователем я имею ввиду программиста на яп) нет просто потому, что сборщик мусора это такая неприятная штука, которая тасует память как ему хочется, и смысла в указателях чуть менее, чем никакого. Поэтому вводится понятие "ссылки" - дескриптора объекта, по которому система может получить указатель. А работа с указателями напрямую требует фиксации памяти и запрету сборщику работать (в том же шарпе, где указатели можно использовать в небезопасном контексте, есть ключевое слово fixed, запрещающее сборщику перемещать объекты), что ведет в фрагментированности памяти и прочим неприятным штукам
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2014, 13:35
Привет! Вот еще темы с ответами:

Указатели на слонов или А зачем нужны указатели? - C++
Знаю что таких вопросов было уйма, но я так и не нашел ответа на свой вопрос. Для чего нужны указатели? Что такое указатели я знаю, это...

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

Указатели на массивы. Указатели и функции - C++
Вот задача: Даны два массива : А и B. Необходимо создать третий массив, в котором нужно собрать: -Элементы обоих массивов; -Общие...

Указатели и массивы. Указатели и функции - C++
Никак не разберусь с указателями на функцию. Пишу в Visual Studio. Надо написать функцию Compress() с использованием указателей, которая...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
01.06.2014, 13:35
Ответ Создать тему
Опции темы

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