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

Указатели :) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверьте правильность кода. Почему выдаёт ошибку? http://www.cyberforum.ru/cpp-beginners/thread250810.html
Написать программу, которая считывает текст из файла, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте. Текст программы #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <windows.h>
C++ закрытие программы Здравствуйте господа програмисты!у меня такой вопрос-допустим известно что открыта какая то программа,могу ли я её програмно закрыть если да,то как? Всем заранее огромное спасибо!!! Добавлено через 1 минуту на языке с++ http://www.cyberforum.ru/cpp-beginners/thread250794.html
C++ Определить, пересекаются ли прямая и окружность
Задана окружность с центром в точке О(x0,y0) и радиусом R и прямая у=ах+b. Определить, пересекаются ли прямая и окружность. При положительном ответе найти точки пересечения
Задание на C C++
Ребята помогите решить задание.
C++ Сформировать одномерный массив целых чисел, используя датчик случайных чисел http://www.cyberforum.ru/cpp-beginners/thread250778.html
Условие такое 1.Сформировать одномерный массив целых чисел, используя датчик случайных чисел. Распечатать полученный массив. 2.Удалить 5 последних элементов массива. 3.Добавить в начало массива 3 элемента с значением M+2. Распечатать полученный массив. Делаю. #include <iostream.h>
C++ Матрицы и строки Прошу помочь с решением задач: С клавиатуры вводится матрица размером n x m: 1)Вычислить сумму всех чисел кратных трем в этой матрице и заменить максимальный элемент на эту сумму. 2)Заменить все четные элементы в заданном столбце на минимальный элемент. Строки: 1)С клавиатуры вводится строка символов состоящая из слов. Удалить из строки все слова длиной четыре символа. 2)С клавиатуры... подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.03.2011, 01:27     Указатели :)
Цитата Сообщение от dimon1984 Посмотреть сообщение
Вроде понимаю что такое указатели
в том-то и дело, что вроде...
Начать с того, что на самом деле указатель - это переменная, способная хранить адрес другой переменной.

Цитата Сообщение от dimon1984 Посмотреть сообщение
к примеру int* x = &y это в "x" тоже значение, что и в "y"
В x никак не может быть то же значение, что и в y. В x хранится адрес переменной y. Т.е. значением x является адрес в памяти, по которому расположены данные, записанные в y.

Цитата Сообщение от dimon1984 Посмотреть сообщение
К примеру как назначить указатель на двумерный массив?
Стандартный двумерный массив не является массивом указателей, поэтому присвоить m двойному указателю не получится. Присвоение должно быть таким:
C++
1
2
char m[2][6] = {"hello", "world"};
char (*ptr)[6] = m;
Вторая строка означает: мы объявляем указатель ptr на массив из 6 элементов (если менее строго - массив массивов из 6 элементов) и связываем его с m.
Выводить тогда следует так:
C++
1
std::cout << m[0] << ", " << m[1] << "!" << std::endl;
Т.е. сначала вывели 1 строку, потом вторую. Вывести сразу обе не получится.

Цитата Сообщение от dimon1984 Посмотреть сообщение
И обьясните плиз про синтаксис **
Тут по аналогии с простым указателем. Если указатель - это переменная, способная хранить адрес другой переменной, то указатель на указатель - это переменная, способная хранить адрес указателя.
Какая здесь связь с двумерным массивом? А вот какая. По сути двумерный массив можно представить как массив указателей, каждый из которых указывает на массив. Т.о. мы получаем массив, элементами которого являются объекты не числовых (или определённых пользователей) типов, а указатели. Отсюда имеем одну звезду в имени переменной. Но нам и сам этот массив указателей надо определить, он ведь тоже должен быть расположен где-то в памяти, и на него тоже что-то должно указывать. Отсюда имеем вторую звезду. Получаем, что (если имеем int **ptr; ) ptr указывает на область памяти, в которой могут лежать элементы типа int * (откинули первую звезду). И каждый из этих элементов указывает на область памяти, в которой могут лежать элементы типа int (откинули вторую звезду). Таким же образом можно представить массивы больших размерностей.

Добавлено через 4 минуты
Цитата Сообщение от dimon1984 Посмотреть сообщение
и что значит такой синтаксис? *(*...)
Уточните. Он много что может значить, в зависимости от контекста. Какой конкретно вариант вас интересует?
 
Текущее время: 01:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru