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

Как использовать указатели при работе с массивами? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамический массив http://www.cyberforum.ru/cpp-beginners/thread393896.html
Подскажите, как создать двумерный массив mxn, пожалуйста!
C++ Массив строк... Здравствуйте, помогите пожалуйста, дан файл .txt, в нем неизвестное кол-во символьных строк, надо вывести все строки на экран поочередно, не сразу весь файл вывести! на Си. http://www.cyberforum.ru/cpp-beginners/thread393895.html
C++ построение графика f(x)=x^4+3x-20
Дали задание в универе, График из Mathcad'a нужно нарисовать в C, но для такого нужен Visual C или C#, а я такого уже не знаю. Помогите написать программу или дайте толковый самоучитель как оно делается. f(x)=x^4+3x-20
Как завершить цикл в OpenMP C++
Использую OpenMP для параллельных расчетов очень нужно при определенном условии экстренно завершить цикл break; с OpenMP не работает можно ли как то завершить цикл не дожидаясь его окончания ??
C++ Сделать событие изменения переменной в классе http://www.cyberforum.ru/cpp-beginners/thread393869.html
в классе есть переменные в области паблик. Надо сделать так что при изменении переменной ,выполнялось какое то событие. Ну например если кто прогал в билдере. Там есть компонент Edit. И событие OnChange. При изменении значение в Edit срабатывает OnChange. Что -то подобное для переменной класса сделать можно? паттерн какой то рубить надо?
C++ Упорядочить массив, начиная с элемента с номером К, методом "пузырька" Задан массив U(N) и натуральное число К. Сортировать элементы, начиная с элемента с номером К, за ростом. Для решения задачи применим метод "пузырька" #include <iostream.h> #include <stdio.h> #include <conio.h> int main(void) { подробнее

Показать сообщение отдельно
Гоблин
1 / 1 / 0
Регистрация: 17.10.2010
Сообщений: 29
28.11.2011, 16:19     Как использовать указатели при работе с массивами?
X[4] == *(X + 4)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 #include <conio.h>
 #include <iostream.h>
 const int n = 10;
 int main()
 {
 int X[n] = {1,2,3,4,5,6,7,8,9,10};
 int Y[n] = {2,3,4,6,7,3,4,5,1,9,};
 int Z[n] = {1,2,3,4,5,6,7,8,9,0};
 int *U; //указатель на массив
 U = new int [n]; // выделяем память под массив
 int *i, *ix = &X[0], *iy = &Y[0], *iz = &Z[0];
 for (i = U; i < U + n; i++)
 {
   *i = *ix + *iy - *iz;
   cout << *i <<" ";
   ix++;
   iy++;
   iz++;
 }
 cout << endl;
 system("pause");
 delete U; //освобождаем память 
 }
То есть переход к следующему элементу осуществляется простым инкрементом. Компилятор сам перескакивает на нужное число байт.

Строка
C++
1
 int *i, *ix = &X[0], *iy = &Y[0], *iz = &Z[0];
сугубо для твоего примера. Что бы не заполнять массив вручную (как это надо было бы для U) я объявляю новые указатели и заношу в них адреса начала массива. Адрес начала массива содержится в самом идентификаторе массива, или X[0] - первый элемент. То есть *X - обратиться по адресу X, &X - получить адресX. В самом указателе X будет храниться адрес. Как-то так)
 
Текущее время: 10:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru