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

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

Войти
Регистрация
Восстановить пароль
 
Илларион
8 / 8 / 0
Регистрация: 05.06.2011
Сообщений: 97
#1

Что будет выведено на экран по данным указателям и ссылкам? - C++

11.10.2011, 00:57. Просмотров 868. Ответов 5
Метки нет (Все метки)

Привет! Все никак до конца не могу понять указатели и ссылки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdlib.h>
#include <iostream>
 
using namespace std;
 
int main(int argc, char* argv[]) {
    int a = 25;
    int *pa = &a;;
    cout << a << endl;
    cout << pa << endl;
    cout << *pa << endl;
    cout << &*pa << endl;
    cout << &pa <<endl;
    system("PAUSE");
    return (EXIT_SUCCESS);
}
Не могли бы вы мне подсказать, в какой строчке что будет выведено (из си-оутов)? Заранее благодарю!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2011, 00:57     Что будет выведено на экран по данным указателям и ссылкам?
Посмотрите здесь:

Что будет выведено на экран? C++
C++ что будет выведено на экран
Что будет выведено на экран при выполнении следующей программы C++
то будет выведено в результате работы алгоритма? C++
Что будет выведено на экран в результате выполнения приведенного фрагмента кода? C++
Накидать задачек по ссылкам и указателям C++
C++ Что будет выведено после выполнения следующего фрагмента программы:
C++ Что будет выведено на экран при выполнении следующего фрагмента программы
Что будет выведено на экран при выполнении следующего фрагмента программы C++
Что будет выведено на экран при выполнении следующей программы при n = 5 ? C++
C++ Что будет выведено на экран?
C++ Как запустить внешнее консольное приложение и получить то, что будет выведено на экран?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
11.10.2011, 01:20     Что будет выведено на экран по данным указателям и ссылкам? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Илларион Посмотреть сообщение
Не могли бы вы мне подсказать, в какой строчке что будет выведено
а скомпилировать и посмотреть не?
код
C
1
2
3
4
5
6
7
8
9
10
11
int main ()
{
    int a = 25, *p;
    p = &a;
    printf("%x\n", a);
    printf("%x\n", p);
    printf("%x\n", *p);
    printf("%x\n",&*p);
    printf("%x\n",&p);
    return 0;
}

вывод
Код
19               значение a
bfda75cc      адрес а
19               значение а
bfda75cc      адрес а
bfda75c8     адрес р
KeyGen
 Аватар для KeyGen
383 / 290 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
11.10.2011, 01:24     Что будет выведено на экран по данным указателям и ссылкам? #3
Только ссылки здесь ни причем. Указатели и адреса. Ссылка это другая штука.
Илларион
8 / 8 / 0
Регистрация: 05.06.2011
Сообщений: 97
11.10.2011, 01:35  [ТС]     Что будет выведено на экран по данным указателям и ссылкам? #4
Спасибо. Вот только хотел спросить. Несколько раз запускал программу и значения адресов всегда одинаковое. Но ведь оперативка- это весчь очень динамичная, так почему переменная все время записывается в одно и тоже место? Оно разве не может быть забито чем-то другим?

Добавлено через 7 минут
И ещё, можно ли средствами С++ обратиться к какому-нить вымышленному адресу и получить его значение? Или это невозможно из-за техники безопасности?
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
11.10.2011, 01:39     Что будет выведено на экран по данным указателям и ссылкам? #5
Илларион, переменная записывается туда на время выполнения программы (и не обязательно в ОЗУ, есть места и "пооперативней")

Добавлено через 2 минуты
Цитата Сообщение от Илларион Посмотреть сообщение
И ещё, можно ли средствами С++ обратиться к какому-нить вымышленному адресу и получить его значение? Или это невозможно из-за техники безопасности?
все можно, но не все нужно.
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
11.10.2011, 06:51     Что будет выведено на экран по данным указателям и ссылкам? #6
Цитата Сообщение от Илларион Посмотреть сообщение
И ещё, можно ли средствами С++ обратиться к какому-нить вымышленному адресу и получить его значение?
C++
1
2
3
4
5
6
7
8
9
10
11
[nameless@desktop c]$ cat main.c
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    char* c = (char*) 0xDeadBabe;
    putchar(*c);
    
    exit(0);
}
Код
[nameless@desktop c]$ ./sample 
Ошибка сегментирования (core dumped)
[nameless@desktop c]$
Yandex
Объявления
11.10.2011, 06:51     Что будет выведено на экран по данным указателям и ссылкам?
Ответ Создать тему
Опции темы

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