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

В чем отличие char* s от char *s - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать файл с квадратной матрицей; чётные элементы переместить в один файл, нечётные - в другой http://www.cyberforum.ru/cpp-beginners/thread1780485.html
• Создать файл с массивом А. • Четные элементы переместить в файл А • Нечетные элементы переместить в файл В Не могу понять Как заполнить файл, записать внутрь массив и чтоб она сама разделила на четные и нечетные :(
C++ Попадание точки в область В общем такой вопрос. У нас есть множество точек, которые являют собой замкнутую ломаную. Эта ломаная всегда замкнута, но мы не знаем, какая она. Просто получаем точки. Как построить алгоритм попадания точки в область, контуром которой является эта кривая? Во время обучения на первом курсе нам давали картинки, там были заштрихованы области. С этим я сам справился. Но что если эта самая фигура... http://www.cyberforum.ru/cpp-beginners/thread1780447.html
C++ В цикле вывести на экран все совершенные числа
продолжение того же задания, но уже с дополнением... Создать функцию, которая будет иметь 1-н целочисленный параметр А, и в качестве своего значения возвращать true/false если число А совершенное. После задания с клавиатуры границ диапазона в цикле вивести на екран все совершенные числа... в результате доходит до 8128, останавливается и не дает выйти из консоли... пробовал менять типы на...
C++ Подскажите, что делает программа
Собрался поступать в универ. проходил тест пробный, там с++, дали код. Я немного учил с++ и увидел что код не полный. дополнил его и он стал работать. Но я так и не понял что он делает, подскажите. Это уже тот что я поправил(добавил conio, endl и _getch и using. Может что лишнее, но с этим заработало. Только что она делает не пойму , а именно все что в int main() #include <iostream> #include...
C++ Используете ли вы глобальные переменные http://www.cyberforum.ru/cpp-beginners/thread1780402.html
Добрый вечер, используете ли вы у себя в коде глобальные переменные между единицами трансляции и/или в конкретной? Моё мнение: нужна общая переменная делаем сингтон (+контроль, +гибкость, +ООП, +lazy inizilization). P.S. Смотрю проекты гитхаба С++ - используют люди глобальные с extern, блэк-джеком и пушками. Смотрю в чём плюсы такого приёма - не вижу. Человеческая лень? Знаю пример,...
C++ Раздача карт и оценка комбинации Привет! Думаю, ничего нового в моей теме не будут, но все же интересно, очередное задание из Дейтелов, звучит так: Измените программу на рис. 8.27 так, чтобы функция раздачи сдавала по пять карт для игры в покер. Затем напишите следующие дополнительные ф функции, которые могут: a) Определить, имеется ли на руках у игрока пара. b ) Определить, имеется ли на руках у игрока две пары. c)... подробнее

Показать сообщение отдельно
shezu
4 / 4 / 0
Регистрация: 20.01.2016
Сообщений: 24
15.07.2016, 09:11     В чем отличие char* s от char *s
laby, переменная типа ссылка (&) не указывает память, она работает с ней. Это такая же обычная переменная, которая работает с той же памятью переменной, которую ты присваиваешь ссылке. Ссылка не является адресом, она себе присвоила адрес на эпапе инициализации и является переменной ссылочного типа.
Указатель (*) - адрес в памяти, с которой он может работать.
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a; // создана переменная
    cout << a << endl; // достать значение памяти из переменной
    cout << &a << endl; // достать адрес памяти из переменной
    int *b = &a; // создать указатель и присвоить ему адрес
//    b = (int*)(0x7ffe1d8dcdbc); // так можно вручную присваивать адреса, но не стоит так делать вовсе
    cout << *b << endl; // достать значение памяти из указателя
    cout << b << endl; // достать адрес, на которрую ссылкается указатель
    int &c = a; // создать ссылочную переменную и записать в неё адрес переменной "a"
    cout << c << endl; // достать значение памяти переменной ссылочного типа
    cout << &c << endl; // достать адрес памяти переменной ссылочного типа
    
    int d; // выделена новая память под новую переменную
    b = &d; // присваиваем указателю другой адрес
    b = &a; // вернули адрес переменной, созданной при инициализации
    
    b = new int; // выделена новая память и её адрес записан в указатель "b"
    *b = 3; // присвоили памяти значение "3" по адресу, который кранит указатель "b"
    delete b; // очистили память по адресу, на который указывал указатель "b" и освободили память
    b = new int(5); // выделена новая память со значением "5" и её адрес записан в указатель "b"
    delete b; // очистили память по адресу, на который указывал указатель "b" и освободили память
    
    return 0;
}
Переменная типа ссылка - не адрес, память не то же самое что адрес. Получается нет никакого "адрес адреса".
Переменная типа ссылка - синоним другой переменной (как ссылочного так и обычного типа), не более того. Это безопаснее чем работа с адресом, но менее гибкий способ.

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