Re[6]: char* или char[]
От: Аноним  
Дата: 03.01.04 16:50
Оценка:
Если нужна "постоянная" строка, то как раз-таки лучше писать const char str[] = "abcdef";
На счет массивов и указателей:
В случае const char *a = "abc"; под саму строку будет выделено четыре байта плюс на стеке (в случае локальной переменой) компилятор зарезервирует четыре байта для указателя и поместит туда адрес этой строки. В случае с глобальной — аналогично (четыре байта для самой строки и четыре байта на глобальный указатель). Если же у тебя есть const char b[] = "abc"; то здесь будет зарезервировано только четыре байта под саму строку без какого-либо указателя. При обращении к "а" (например printf(a) будет использовано содержимое указателя "а" в то время как при обращении к "b" (printf(b)) будет использоваться какое-то постоянно значение (непосредственный адрес строки в памяти).

И массив можно помечать как const!

Здравствуйте, adontz, Вы писали:

A>Здравствуйте, Аноним, Вы писали:


А>>Ничего не прогнал. Это два товарища выше не совсем понимают разницу между массивами и указателями.


A>И в чём принципиальная разница?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.