Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/50: Рейтинг темы: голосов - 50, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 25

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

28.11.2011, 16:03. Показов 11290. Ответов 111
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите пожалуйста как правильно использовать указатели при работе с массивами. Как написать этк программу используя указатели?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 #include<iostream>
 using namespace std;
 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[n];
 for (int i = 0; i < n; i++)
 {
 U[i]=X[i]+Y[i]-Z[i];
 cout<<U[i]<<" ";
 }
 cout << endl;
 system("pause");
 }
если я правильно понял *X - это тоже самое, что и X[0] , а как написать при помощи указателей к примеру X[4]и т.п.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2011, 16:03
Ответы с готовыми решениями:

Указатели при работе с одномерными и двумерными массивами
Помогите Даны натуральное число n, целые числа а1,...,аn . Выяснить, имеется ли среди чисел а1,...,аn совпадающие.

Ошибка при работе с массивами
Здравствуйте. Хочу сделать программу, которая сортирует цифры. Вот код: #include &lt;iostream&gt; using namespace std; int...

Ошибка при работе с массивами char
Задание: написать функцию для сложения целых двоичных чисел. Слагаемые должны иметь тип unsigned char. Вот что получилось, но после...

111
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.11.2011, 16:01
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Bers Посмотреть сообщение
Как? "так" ?
Твердое, мягкое, твердое.
Цитата Сообщение от taras atavin Посмотреть сообщение
Ну твёрдости присвоить "мягко" - не фокус. Плюсы же позволяют твёрдости присвоить зелень, а температуре - алмаз. Причём, автор мнимых граблей полиморфизма и все, кто в эти грабли поверил, будут в обоих случаях юзить преобразование запаха в химическую формулу, что в корне не верно, но язык то в том не виноват.
Вы ошиблись, Вам в литературный раздел.
0
Заблокирован
30.11.2011, 16:08
fasked, внимательно изучите этот код:

C++
1
2
3
4
5
6
7
int main()
{
    int b=10.0; 
    double a = b;   
    
    return 0;
}
C++ язык строгой типизации. Нельзя доблу присвоить инт.
С++ вовсю использует механизмы неявных преобразований типов.

Понятно, что переменной a будит присвоен double, а не int.
В приведенном выше коде присутствует как минимум два скрытных конструктора объектов.

При этом, если бы a и b являлись "тяжелыми" объектами, то...

Я сам когда узнал в первый раз, и до меня дошла вся прелесть этой ситуации, то первое что я сделал - это проверил свои коды на предмет "а где ещё оказывается срабатывает левое копирование объектов, о котором я даже и не знаю ничего?"
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
30.11.2011, 16:19
Цитата Сообщение от Bers Посмотреть сообщение
левое копирование объектов
Мало было "неявных указателей"... Более детальное описание этого действа будет?

И кстати...

Не по теме:

Цитата Сообщение от Bers Посмотреть сообщение
будет
...
не будет
Цитата Сообщение от Bers Посмотреть сообщение
переменной a будит присвоен double
fasked, epic fail... ;)

2
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.11.2011, 16:25
Цитата Сообщение от Bers Посмотреть сообщение
Нельзя доблу присвоить инт.
Почему же нельзя? Стандарт не запрещает. При преобразовании из вещественных чисел в целые возможно UB. Впрочем, как и в обратном случае.
Цитата Сообщение от Bers Посмотреть сообщение
При этом, если бы a и b являлись "тяжелыми" объектами, то...
То это была бы уже другая история, которая описывается отдельными пунктами в стандарте.
0
Заблокирован
30.11.2011, 16:34
Вдумайся ещё раз вот эту фразу:

Цитата Сообщение от fasked Посмотреть сообщение
Почему же нельзя? Стандарт не запрещает. При преобразовании из вещественных чисел в целые возможно UB. Впрочем, как и в обратном случае.
Можно даже вот так сказать:
В с++ нельзя твердому присвоить мягкое. Но если можно преобразовать мягкое в твердое - то можно.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.11.2011, 16:43
Цитата Сообщение от Bers Посмотреть сообщение
Можно даже вот так сказать:
В с++ нельзя твердому присвоить мягкое. Но если можно преобразовать мягкое в твердое - то можно.
Вы можете как угодно говорить, а верить надо только стандарту. В стандарте написано можно, а то, что Вы об этом не знали когда-то или до сих пор не знаете исключительно Ваши проблемы.
Стандарт надо читать, а не разводить демагогии с твердыми и мягкими. Или Вы это делаете ради красоты слова?
Цитата Сообщение от Bers Посмотреть сообщение
Вдумайся ещё раз вот эту фразу:
Во что вдуматься? Я прекрасно понимаю и осознаю, что я пишу. Мне не надо перечитывать свои же слова.

И еще раз. Преобразования вида floating-integral и неявные преобразования других типов данных абсолютно разные вещи!
0
Заблокирован
30.11.2011, 16:44
Цитата Сообщение от fasked Посмотреть сообщение
Во что вдуматься?
Нельзя инту присвоить не_инт.
Вы инту не доубл присваиваете, а инт. То есть, сначала доубл будит преобразован в инт, и только потом будит выполнено присваивание.
0
Заблокирован
30.11.2011, 16:45
Цитата Сообщение от Bers Посмотреть сообщение
Вдумайся ещё раз вот эту фразу:

Можно даже вот так сказать:
В с++ нельзя твердому присвоить мягкое. Но если можно преобразовать мягкое в твердое - то можно.
Переводя это на нормальный человеческий язык, это означает, что объект одного типа можно присвоить объекту другого типа, если существует функция преобразования либо если компилятору разрешено самостоятельно осуществлять такое преобразование (как для чисел с плавающей точкой, точнее сказать, как для фундаментальных типов).
Функциями преобразования называются конструктор, принимающий один аргумент, либо оператор-функция преобразования типов.
1
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.11.2011, 16:49
Цитата Сообщение от Bers Посмотреть сообщение
Вы инту не доубл присваиваете, а инт. То есть, сначала доубл будит преобразован в инт, и только потом будит выполнено присваивание.
Я Вам даже больше скажу. Здесь double prvalue преобразовывается в integral prvalue.
0
30.11.2011, 16:49

Не по теме:

Сыроежка, вот я иногда думаю.. мож я выражаюсь как то некорректно? Раз люди меня не понимают?

Но вот я заметил, вы меня почему то обычно всегда понимаете.

0
Заблокирован
30.11.2011, 16:53
Цитата Сообщение от Bers Посмотреть сообщение

Не по теме:

Сыроежка, вот я иногда думаю.. мож я выражаюсь как то некорректно? Раз люди меня не понимают?

Но вот я заметил, вы меня почему то обычно всегда понимаете.

Просто я для вашей исходной фразы использовал сначала подстрочник: если нельзя, но очень хочется, то можно!
1
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
30.11.2011, 17:44
я вас разочарую, всякие там "переменные" или "объекты" существуют лишь в теории на приктике же есть память и ее адрес и всьо.
0
Заблокирован
30.11.2011, 17:47
Цитата Сообщение от alkagolik Посмотреть сообщение
я вас разочарую, всякие там "переменные" или "объекты" существуют лишь в теории на приктике же есть память и ее адрес и всьо.
Я вас тоже разочарую. Всякие там "памяти" и "адреса" существуют лишь в теории. На практике же есть только электрический ток в микросхемах: есть сигнал, нет сигнала.
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
30.11.2011, 20:00
Цитата Сообщение от Bers Посмотреть сообщение
Я вас тоже разочарую. Всякие там "памяти" и "адреса" существуют лишь в теории. На практике же есть только электрический ток в микросхемах: есть сигнал, нет сигнала.
"Память" есть, запоминающее устройство. Простейшее одноразрядное зу - триггер. И даже способов построить зу есть несколько, отсюда и разные типы зу и разный тип доступа к адресам зу, и адреса - двоичные векторы, хранящиеся в зу. 8 триггеров = 8 разрядный регистр, который и относится к зу, потому как единственным его назначением является хранение данных в двоичном виде.
0
Заблокирован
30.11.2011, 20:00
Цитата Сообщение от alkagolik Посмотреть сообщение
"Память" есть, запоминающее устройство. Простейшее одноразрядное зу - триггер. И даже способов построить зу есть несколько, отсюда и разные типы зу и разный тип доступа к адресам зу, и адреса - двоичные векторы, хранящиеся в зу. 8 триггеров = 8 разрядный регистр, который и относится к зу, потому как единственным его назначением является хранение данных в двоичном виде.
какое это имеет отношение к теме?
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
30.11.2011, 20:04
Цитата Сообщение от Bers Посмотреть сообщение
какое это имеет отношение к теме?
а темы уже давно нет, вам уже стопицот раз показали что никаких явных или неявных указателей не бывает. Есть указатель и точка, он имеет свойства, признаки, но не виды (явный, неявный).
0
Заблокирован
30.11.2011, 20:14
Цитата Сообщение от alkagolik Посмотреть сообщение
а темы уже давно нет, вам уже стопицот раз показали что никаких явных или неявных указателей не бывает. Есть указатель и точка, он имеет свойства, признаки, но не виды (явный, неявный).
Если б ты поменьше философствовал о всяких триггерах ЗУ, и больше уделял внимание русскому тексту, то ты бы заметил, что человек который сказал:

Цитата Сообщение от Bers Посмотреть сообщение
Да причем тут терминология вообще? Указатель, который создаётся неявно - это блин, неявный указатель. Указатель, который создаётся явно - явный.
или вот это:

Цитата Сообщение от Bers Посмотреть сообщение
Явный указатель, или неявный указатель - это не термины, это описания указателей)
Был я сам. С теперь сравни с собственным творчеством:

Цитата Сообщение от alkagolik Посмотреть сообщение
Есть указатель и точка, он имеет свойства, признаки, но не виды (явный, неявный).
Если до тебя ещё что-то не допирает, то подозреваю, что у тебя просто проблемы с восприятием русского текста. Потому что ты сейчас говоришь мне тоже самое, что я сам сказал вам всем несколькими страничками ранее.
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
30.11.2011, 20:27
суров. Не кипятись, колонки распирает от крика.
0
 Аватар для Гоблин
1 / 1 / 1
Регистрация: 17.10.2010
Сообщений: 29
01.12.2011, 11:43
а темы уже давно нет, вам уже стопицот раз показали что никаких явных или неявных указателей не бывает. Есть указатель и точка, он имеет свойства, признаки, но не виды (явный, неявный).
Только что в универе подходил к преподавателю С++. Явный и неявный действительно условные названия, однако ими почему-то все пользуются. Ну, возможно, кроме тех, кто знает все стандарты наизусть

C++
1
2
3
4
5
6
7
8
9
10
void f1(int *A, int *s)  {
 ...
 *s = A[1];
... 
}
 
void main() {
  ...
  f1(A, s);
}
C++
1
2
3
4
5
6
7
8
9
10
void f2(int *A, int &s) {
  ...
  s = A[1];
  ...
}
 
void main() {
  ...
  f2(A, s);
}
Найдите отличия) Во втором случае как раз и происходит неявное разыменование, то есть s - то, что простые смертные называют неявным или скрытым указателем.
0
Заблокирован
01.12.2011, 11:47
Цитата Сообщение от Гоблин Посмотреть сообщение
то есть s
это ссылка)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2011, 11:47
Помогаю со студенческими работами здесь

Использование показателей при работе с массивами
n натуральное, a1,...,an действительные числа. Найти : a1a2n+a2a2n-1+...+anan+1

Использование показателей при работе с массивами
Даны a1,...,an действительные числа, n* натуральное число. Если в этой последовательности присутствуют три меньших числа,вывести на экран...

Проблемма при работе с массивами структур
Разработать программу , позволяющую добавлять данные структур с указанными полями в массив, просматривать массивы, а также выполнять...

Указатели при работе со строками char*
Помогите разобраться с указателями #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int main() { char*...

Ошибка в перегрузке оператора - при работе с массивами
Текст программы: #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; class array { public: array(); ...


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

Или воспользуйтесь поиском по форуму:
80
Закрытая тема Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru