187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
1

В чем разница между [] и * ?

18.09.2013, 20:25. Показов 1932. Ответов 7
Метки нет (Все метки)

Думал, что ни в чем, но когда попытался сделать так: (в файле 1)
C++
1
char lc[buf_size];
в файле 2:
C++
1
extern char* lc;
Компилятор ругаться не стал, однако при дебаге обнаружилось, что lc хоть и показывает на то, что надо, функции типа sprintf и fprintf, и прочих считают его за bad-pointer. Каким таким макаром?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2013, 20:25
Ответы с готовыми решениями:

В чем разница между X x; и X x()?
Корректный ли этот ответ?

В чем разница между С и С++
Возник вопрос в чем жи разница между С и С++ кроме того, что в С++ есть классы а в С их нету ?

В чём разница между заголовками <c***> и <***.h>?
Пробовал несколько несложных примеров применения обоих вариантов. Результат выполнения идентичен....

В чем разница между new и malloc()?
Всем доброго дня ! Начал читать книгу Пахомов Б. &quot;C/C++ и MS Visual C++ 2008 для начинающих&quot; ...

7
214 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
18.09.2013, 20:59 2
Цитата Сообщение от nexen Посмотреть сообщение
В чем разница между [] и * ?
первое - индексация - второе указатель на элемент
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
19.09.2013, 12:54  [ТС] 3
Van111, а сообщение в шапке вы читали?
0
3093 / 2413 / 256
Регистрация: 11.03.2009
Сообщений: 5,450
19.09.2013, 13:17 4
В первом случае объявляется статический массив на чар, во втором - указатель.
1
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
19.09.2013, 13:37  [ТС] 5
kazak, так а почему нельзя привести char[] к char*?
0
Почетный модератор
Эксперт С++
5849 / 2860 / 392
Регистрация: 01.11.2011
Сообщений: 6,905
19.09.2013, 13:47 6
nexen, читали: Строковые литералы в Си/Си++ ?
1
Don't worry, be happy
17770 / 10535 / 2034
Регистрация: 27.09.2012
Сообщений: 26,505
Записей в блоге: 1
19.09.2013, 16:00 7
nexen, потому что массив это не просто указатель.
По сути вы делаете подобное:
C++
1
2
3
int x;
//...
extern double x;
1
5489 / 4884 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.09.2013, 16:12 8
Цитата Сообщение от nexen Посмотреть сообщение
а почему нельзя привести char[] к char*?
В каких-то случаях можно, в каких-то нельзя. Так же приводится:
C++
1
2
char arr[5];
char* lc = arr;
При передаче массива в функцию, тоже приводится.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2013, 16:12
Помогаю со студенческими работами здесь

В чем разница между malloc и new?
в чем разница? что лучше использовать?

В чем разница между Debug and Release?
Какие действия выполняет debug в Visual studio и какие Release, в чем разница? Никогда не задавался...

В чем разница между push_back и push?
Подскажите пожалуйста, в чем состоит отличие Push_back и просто Push? Они оба насколько я знаю...

В чем разница между scanf_s и scanf?
какая разница между scanf_s и scanf?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru