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

Указатели и ссылки c++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++/CLI WinForms Валидация http://www.cyberforum.ru/cpp-beginners/thread998777.html
В общем проблема такая нужно сделать так чтобы когда курсор помещался в текст бокс нельзя было вводить или цифры или наоборот символы что то 1 или и то и другое есть код на с++ #pragma endregion String^ TorZ; // Точка или запятая private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { this->Text = "Только цифры"; label1->Text = "Можно вводить только цифры!"; //...
C++ Метод Гаусса Всем привет. Задача: Написать код по решению задачи методом Гаусса. Код готов но код направлен на то что он выводит уже готовую матрицу. то есть матрица состоит из готовой лестницы, и переменная b из уравнения (Ax=b) также готова и равно размеру матрицы. Необходимо сделать так что бы мы сами вводили числа в матрицу. а сам код и циклы с условиями верна #include <stdafx.h> #include <stdio.h>... http://www.cyberforum.ru/cpp-beginners/thread998757.html
Не получается создать массив класса C++
#include <iostream> using namespace::std; class dvig { friend void sum_all(dvig &,dvig &); public: dvig(long double ,long double,long double ,long double ,long double ,long double ,long double ,long double,long double ); void printparametr(); long double x,y,z,fx,fy,fz,Wx,Wy,Wz;
Динамическое программирование. Метод прямой прогонки C++
Мне нужно реализовать граф с поиском минимального пути из начала графа в конец путем прямой прогонки.Сделал граф, как список ребер, проверку, что из одной вершины в другую идет одна дуга, а как делать дальше не знаю. Помогите пожалуйста, желательно конечно кодом на с++, но и литератерка сойдет.
C++ Определить четные значения в матрице http://www.cyberforum.ru/cpp-beginners/thread998714.html
В целочисленной матрице размерами N*M определить количество элементов, которые имеют четные значения (N и M не больше 10). Матрицу сформировать из случайных чисел в диапазоне от 0 до 100. #include "time.h" #include "clocale" #include "iostream" using namespace std; int main() { int n,i,j,tmp=0; cout<<"n="; cin>>n;
C++ Поменять местами элементы массива В массиве A из N элементов поменять местами первый элемент с последним, второй - с предпоследним и т.д. #include <iostream> #include <stdlib.h> using namespace std; int main() { int n,i,j; cout<<"n="; cin>>n; int a; подробнее

Показать сообщение отдельно
Anton_Kretov
 Аватар для Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
05.11.2013, 18:12     Указатели и ссылки c++
Указатель - это переменная, "указывающая" на какой-либо объект, к примеру, переменную типа int. Указатель обязательно должен иметь базовый тип, который как бы говорит, что "этот указатель может взаимодействовать только с переменными такого же типа данных". С помощью указателей можно совершать некие действия, к примеру:
C++
1
2
3
int a = 10;
int *ip; //Объявили указатель на int
ip = &a; //Теперь мы как бы сказали указателю, что "ты должен хранить в себе адрес памяти этой переменной"
Попробовав сделать такую инструкцию:
C++
1
cout << ip;
Получим число в шестнадцатеричной СС, которое будет в себе выражать адрес переменной в памяти.
Есть также и второй оператор - * (один из самых высоких приоритетов). К примеру, такой код:
C++
1
2
3
4
int a = 10;
int *ip = &a; //Тут все понятно, "привязали указатель".
//Теперь магия:
cout << *ip; //Тем самым, мы выведем в консоль значение переменной, на которую указывает указатель (простите за тавтологию).
Также мы можем совершать разные арифметические операции с указателями, как с его адресами, так и со значениями, к примеру, продолжая вышеописанный код:
C++
1
*ip++;
Сейчас мы сделали инкремент значения переменной на которую указывает указатель (вот опять...)

Огромное (для меня) преимущество указателей - их взаимосвязь с массивами, а также их использование в функциях. К примеру, такой код:
C++
1
2
3
4
5
int array[10];
//Тут типо рандомно заполнили его
int *ip = array;
//Если мы попытаемся вывести ip (БЕЗ ЗВЕЗДОЧКИ), то получим значение 0-ого элемента массива
cout << ip; //Получили
С массивами и указателями, а также с их взаимосвязью надо знать много, я описал основное, и то не все. В функциях указатели могут сыграть роль "посредника", так сказать. Раньше мы передавали в качестве аргументов определенные значения, которые становились локальными переменными и изменялись только внутри функции, но значения этих аргументов будут неизменны вне функции. Объявив параметр функции как указатель, мы будем работать в функции непосредственно с самой переменной (с самим аргументом, а не с его "локальной" копией в функции), а значит, что после инкрементирования значение указателя-параметра, изменится и значение передаваемой переменной в качестве аргумента-указателя.

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