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

Оператор -> и спецификатор класса памяти extern - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обобщенный указатель типа void http://www.cyberforum.ru/cpp-beginners/thread424242.html
В приложенной картинке рассказывается о динамическом распределении памяти в С. Сказано, что функция malloc() возвращает указатель типа void. Что это вообще значит?! Функции void не могут возвращать значения! А тут ещё какой-то обобщенный указатель! О_о
C++ Книга по ООП Си++ Добрый вечер , мне дали задание ,написать двусвязный список на С++ с помощью ООП... Подскажите , пожалуйста , книгу или статью, по которой можно это выучить... http://www.cyberforum.ru/cpp-beginners/thread424233.html
Пример использования спецификатора volatile C++
В приложенной картинке (из книги Г.С. Шилдта по C++) есть пример использования спецификатора volatile. Есть три вопроса. Первый: что вообще написано в зеленой :) строке? Переменная будет опрашиваться (и получать данные "извне") всегда после того как она "побывала" слева от оператора присваивания? Второй: с чего вдруг если в строке А переменная была опрошена (для присваивания), она не будет...
C++ Циклические алгоритмы
Как реализовать данную функцию для каждого x, изменяющегося от a до b с шагом h. Значения a, b, h и n вводятся с клавиатуры. Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n=10.
C++ Передача массива из главной функции в неглавную по указателю. http://www.cyberforum.ru/cpp-beginners/thread424215.html
Доброго времени суток! Задача: В функции main() сформировать матрицу M со случайными числами. Её передать по указателю в не главную функцию, в которой из матрицы изымается главная диагональ. Вывести на экран получившуюся матрицу. Я взял k=3, сформировал матрицу с рандомными числами, но как передать её по указателю в неглавную функцию не знаю. #include <conio.h> #include <iostream>...
C++ Покрашенный граф Привет для вот такого условия Дан ориентированный граф, у которого каждая дуга покрашена в один из трех цветов. Требуется найти длину кратчайшего пути из 1й вершины в N-ую, если в пути не могут идти подряд две дуги одного цвета. Входные данные В первой строке записаны N и M (2<=N<=200, 0<=M<=N*N). Далее идет M строк с описанием дуг. Каждая дуга описывается тремя целыми числами X, Y, C -... подробнее

Показать сообщение отдельно
alkagolik
1511 / 617 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
08.01.2012, 12:53     Оператор -> и спецификатор класса памяти extern
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
 
struct str_type {
    int* el;
} obj, *pobj;
 
int main ( void )
{
    int x = 100500;
 
    obj.el = &x;
    pobj = &obj;
    printf("%i\n", *pobj->el );
 
    ++( *pobj->el );
    printf("%i\n", *pobj->el );
 
    ++x;
    printf("%i\n", *pobj->el );
    return 0;
}
http://liveworkspace.org/code/995898...055fc659959671
на уровне процессора ( *pobj ).el == pobj->el. "->" просто удачное решение от создателей. Чтим, помним и уважаем.

Добавлено через 5 минут
C
1
2
    printf("%i\n", *(*pobj).el );
    printf("%i\n", *pobj->el );
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
0x8048408   mov    eax,ds:0x804a01c
0x804840d   mov    eax,DWORD PTR [eax]
0x804840f   mov    edx,DWORD PTR [eax]
0x8048411   mov    eax,0x8048520
0x8048416   mov    DWORD PTR [esp+0x4],edx
0x804841a   mov    DWORD PTR [esp],eax
0x804841d   call   0x8048300 <printf@plt>
0x8048422   mov    eax,ds:0x804a01c
0x8048427   mov    eax,DWORD PTR [eax]
0x8048429   mov    edx,DWORD PTR [eax]
0x804842b   mov    eax,0x8048520
0x8048430   mov    DWORD PTR [esp+0x4],edx
0x8048434   mov    DWORD PTR [esp],eax
0x8048437   call   0x8048300 <printf@plt>
 
Текущее время: 09:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru