12 / 12 / 4
Регистрация: 07.09.2012
Сообщений: 542
|
|
1 | |
Отличие указателя от массива09.07.2015, 16:23. Показов 3511. Ответов 6
Метки нет (Все метки)
Чем отличается
wchar_t* strDelimit = L" "; от wchar_t strDelimit[] = L" "; Понятно что одно указатель, а второе массив, но на практике одно и тоже?
0
|
09.07.2015, 16:23 | |
Ответы с готовыми решениями:
6
Отличие массива фиксированной длины от указателя В чём отличие константного указателя и указателя на константу? Отличие передачи по ссылке от передачи указателя ? Отличие ссылки от указателя |
5 / 5 / 3
Регистрация: 20.10.2013
Сообщений: 68
|
||||||
09.07.2015, 16:33 | 2 | |||||
Как я понимаю, wchar_t strDelimit[] указывает на первый элемент массива, который является переменной типа wchar_t, а wchar_t* strDelimit просто указывает на переменную типа wchar_t.
Массив в памяти просто хранится как последовательность переменных, ты ведь можешь обращаться к элементам массива так:
0
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
|||||||||||
09.07.2015, 16:38 | 3 | ||||||||||
На практике разное. Нужно писать:
0
|
12 / 12 / 4
Регистрация: 07.09.2012
Сообщений: 542
|
|
09.07.2015, 16:39 [ТС] | 4 |
0
|
7 / 7 / 9
Регистрация: 18.06.2015
Сообщений: 30
|
|
09.07.2015, 16:41 | 5 |
klynxe, между этими переменными большая разница.
strDelimit - указатель на константную строку. sizeof(strDelimit) покажет размер указателя. strDelimit - можно рассматривать как указатель на изменяемую строку или как массив. sizeof(strDelimit) в этом случае покажет размер массива
0
|
18829 / 9832 / 2403
Регистрация: 30.01.2014
Сообщений: 17,267
|
|
09.07.2015, 18:04 | 6 |
Причем у этих данных разный storage duration. В первом случае указатель будет ссылаться на строку, которая будет жить все время выполнения программы. Она имеет static storage duration. В втором случае будет создан автоматический массив на стеке (если только это не глобальная или статическая переменная) со значением копии заданной строки, который уничтожится в конце области видимости.
0
|
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
10.07.2015, 08:47 | 7 |
klynxe, вот здесь вот славный Evg старательно все расписал: Строковые литералы в Си/Си++
0
|
10.07.2015, 08:47 | |
10.07.2015, 08:47 | |
Помогаю со студенческими работами здесь
7
В чем отличие массива структур от массива объектов. С примером покажите наглядным Отличие множества от массива Почему увеличение указателя на sizeof(тип) не тождественно инкременту этого же указателя? Создание указателя на экземпляр класса, описанного после объявления указателя Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |