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

Есть ли разница в данных объявлениях массива? - C++

Восстановить пароль Регистрация
 
qazc
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 26
13.09.2013, 15:57     Есть ли разница в данных объявлениях массива? #1
string *array[ ]={"string1","string2"};

string array[] = {"string1","string2"};

В первом случае обьявляется указатель на массив, но ведь имя самого массива(второй вариант) по умолчанию уже является указателем на его первый элемент. Можно ли считать записы эквивалентными?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2013, 15:57     Есть ли разница в данных объявлениях массива?
Посмотрите здесь:

C++ Есть разница между C++Builder и Visual Studio?
C++ Есть ли разница в коде?
Есть ли разница в каком порядке объвлены функции? C++
C++ Вектор или связный список есть ли разница?
Есть ли разница между подключениями 2-х и 1-ого заголовка? C++
C++ Есть ли разница между Visual C++, Borland C++ и C++ Builder?
C++ Есть ли разница между этими записями?
C++ Конец файла. Есть ли разница в windows и linux?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,309
13.09.2013, 16:03     Есть ли разница в данных объявлениях массива? #2
В первом случае объявлен массив указателей на строки. Во втором - массив строк.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6176 / 2905 / 284
Регистрация: 04.12.2011
Сообщений: 7,735
Записей в блоге: 3
13.09.2013, 16:30     Есть ли разница в данных объявлениях массива? #3
Вторая строка допустима:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
 
int main(){
SetConsoleCP (1251); SetConsoleOutputCP (1251);
//так можно
string strarr1[] = {"one", "two"};
//и так
string st("one");
string st1("two");
string strarr2[] = {st, st1};
//а так не скомпилирует
//string *pstrarr1[] = {"one", "one"};// : error C2440: инициализация: невозможно преобразовать 'const char [4]' в 'std::string *'
//и так тоже
//string *pstrarr2[] = {st, st1};// : error C2440: инициализация: невозможно преобразовать 'std::string' в 'std::string *'
cout<<endl;
cin.get();   
return 0;
}
Yandex
Объявления
13.09.2013, 16:30     Есть ли разница в данных объявлениях массива?
Ответ Создать тему
Опции темы

Текущее время: 17:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru