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

Массив: заполнить пространство определенным количеством атомов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Для каждой буквы первого слово определить входит ли она во второе слово. Повторяющиеся буквы первого слова не рассматривать http://www.cyberforum.ru/cpp-beginners/thread810234.html
#include <iostream.h> #include <math.h> #include <conio.h> #include <string.h> #include <stdio.h> Не выходит с "Повторяющиеся буквы первого слова не рассматривать" main() { clrscr();
C++ где найти конспект по этой теме Размер жесткого диска с файловой системы EXT2 http://www.cyberforum.ru/cpp-beginners/thread810233.html
C++ Бинарное включение
Здравствуйте.задали лабораторную работу реализовать сортировку массива методом бинарного включения. Я провел в С++ весь день но ничего не вышло. Помогите пожалуйста.Я уж и не знаю что не так в моем коде. //нужно отсортировать рандомно генерированный массив по возрастанию #include <iostream> #include <time.h> #include <iomanip> using namespace std; int main() { int array;...
C++ Сортировка по полю структуры
Всем привет,есть следующие задание заполнить информацию о студентах группы,а потом отсортировать по парням и девушкам,но почему то мой if не находит заданного условия #include <iostream> #include <fstream> using namespace std; struct students { char firstname; char lastname; int age;
C++ Трабл с блок-схемой http://www.cyberforum.ru/cpp-beginners/thread810193.html
Была написана программа,для работы с файлом,все работает,но при составлении блок-схемы возникли проблемы.Вот сделал набросок в Visio,но сказали что не правильный.Благодарочка за помощь:declare: #include <iostream> #include <fstream> using namespace std; int main() { ifstream file("test.txt");
C++ Многомерные массивы. Поиск количества тех элементов матрицы,которые больше суммы остальных элементов своего столбца Здравствуйте, пожалуйста помогите с программой. Дана целочисленная матрица из N строки и M столбцов (1<N<=100,1<M<=50).Выполнить заданную операцию над матрицей. Операция: поиск Параметры операции: Количества тех элементов матрицы,которые больше суммы остальных элементов своего столбца. подробнее

Показать сообщение отдельно
shau-kote
3 / 3 / 0
Регистрация: 24.06.2012
Сообщений: 50
16.03.2013, 19:02     Массив: заполнить пространство определенным количеством атомов
Skrypnyk, почитайте немного про адресную арифметику в C\C++.
Там всё несколько своеобразно.

Попробую изложить кратко.
В C определена операция сложения над указателями. Если мы к указатели прибавим, допустим единицу, то указатель увеличится на количество байт, которое занимает единица того, типа, на который указывает указатель.
То есть
C++
1
2
3
int a, *p;
p = &a; // p указывает на a
++p; // p сместился на 4 байта
Формально мы можем записать в эту новую ячейку памяти число, но лучше так не делать, поскольку мы не выделяли там память, и компилятор может использовать эту память как-то по своему.

Но когда объявляете массив
C++
1
int a[100]
то компилятор делает следующее:
1) создаёт переменную-указатель типа int*;
2) выделяет под неё 400 байт памяти;
3) устанавливает указатель a на начало этого куска памяти.

А когда вы обращаетесь к i-ому элементу массива - a[i] - компилятор фактически заменяет этот код на *(a + i) - сдвинуть указатель на i ячеек по 4 байта от начала области памяти, на которую указывает a и работать с этой ячейкой.

Таким образом, с C\C++ массивы - и не массивы вовсе, а указатели на области памяти. И всё.

Если всё же не понятно - почитайте ещё про адресную арифметику в С, на эту тему много написано.
Я бы посоветовал классиков - Кернигана и Ритчи.
 
Текущее время: 09:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru