С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Ссылка на массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Текст http://www.cyberforum.ru/cpp-beginners/thread32478.html
Сделайте прогу за деньги!!Пишите в личку. обработка текстовой информации. массиво не должно быть! должен быть ввод и вывод в файл. Задание: Некоторые предложение в тексте могут начинаться с...
C++ В поисках совершенных абстракций Для C++ существует огромное множество библиотек выполненных в различных техниках исполнения. Программисты создавшие их следовали разным ментальным моделям. К сожалению лично мне использование этих... http://www.cyberforum.ru/cpp-beginners/thread32477.html
Решение квадратного уравнения C++
Доброго времени суток, форумчане! Не могу разобраться, что у меня не так, если не сложно отзовитесь =) Задача простая по сути: "Найти корни квадратного уравнения. Используя условный оператор if -...
C++ Задача со строковой переменной
помогите кто может...вот задание "Создать программу, анализирующую правильность записи арифметического выражения с точки зрения синтаксиса С++. Арифметическое выражение задается строковой переменной...
C++ Генерация ПСП http://www.cyberforum.ru/cpp-beginners/thread32459.html
Пожалуста, помогите. Задача состоит в том чтобы написать на С++ генератор псевдослучайных последовательностей по формуле: Y=F*Y, где F - матрица(любая невырожденная), Y - вектора. Все...
C++ Движение объекта, управление стрелками. Перестает работать при нажатии любой клавиши Здравствуйте. Пишу игру в танчики. Borland C++ 3.1 1. Сейчас реализовал само движение объекта с помощью стрелок. Проблема в том, что когда я жму на одну из клавиш управления (влево например),... подробнее

Показать сообщение отдельно
hoggy
6723 / 2908 / 499
Регистрация: 15.11.2014
Сообщений: 6,548
Завершенные тесты: 1
20.07.2015, 22:55
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
зачем это вообще надо?
ссылки на массив "помнят" свою природу: знают типы и размерности:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
template<typename T, size_t N>
void foo(  const T (&arr)[N] )
{
   std::cout<<"'массив из "<< N<< "элементов\n";
}
 
int main()
{
     int a[] ={1,3,4,5,6};
     float b[] ={1,3,4,5,6};
 
    foo(a); //<--- не нужно указывать размер массива
     // он будет вычислен автоматически
 
 
   foo(b);
}
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
используйте указатели!
а вот указатели не знают, на что они точно указывают.
и поэтому, менее надежные.

а функции, написанные с их помощью не дают никаких гарантий,
и не способны обнаружить ошибку (например - выход за пределы диапазона массива).

Добавлено через 3 минуты
Цитата Сообщение от dvano Посмотреть сообщение
Чем отличается от int *link = arr?
здесь link - это обычный сырой указатель,
который указывает на объект типа int ( а не на массив таких объектов)

по стандарту массив умеет неявно приводится к обычному указателю.

однако есть разница между указателем на первый элемент массива, и указателем на сам массив.
последнее хранит знание о размерностях массива.
4
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.