«Тип string не является встроенным типом С++, как int или float, т.е. операции с этим типом не встроены в синтаксис языка, а определены в заголовочном файле string. Детальнее класс string рассматривается в главе 27, "Шаблоны С++" ; здесь же я упомянул о нём только как о более простом средстве работы со строками.»
[Атас!]
_________________
104 стр. Часть 2. Становимся функциональными программистами
Глава 8. ПЕРВОЕ ЗНАКОМСТВО С УКАЗАТЕЛЯМИ В С++...105ОГЛАВЛЕНИЕ
В этой главе...
►Размер переменной 105
►Что такое адрес 106
►Адресные операторы 106
►Использование указателей 108
►Передача указателей функциям 111
►Использование кучи 113
По сравнению с другими языками С++ достаточно обычен. Конечно, в ряде языков программирования отсутствуют специальные логические операторы, для которых в С++ имеются свои обозначения, но концептуально это достаточно традиционный язык программирования. Одним из отличий С++ является использование указателей. Указатель — это переменная, которая содержит адрес другой переменной ( т.е. её расположение в памяти ).
В этой главе представлены основы работы с указателями. Сначала рассматриваются концепции, с которыми необходимо обязательно ознакомиться для работы с указателями, затем поясняется синтаксис указателей и некоторые причины их высокой популярности в С++.
►Размер переменной...105
Память в компьютере измеряется в байтах и битах. Вот текст программы, которая даст вам представление о том, чему равен размер переменных разных типов.
/* VariableSize — вывод информации о размерах переменных различных типов */
#include
#include
#include
using namespace std ;
int main( int nNumberofArgs , char* pszArgs[ ] )
{
bool b ;
char c ;
int n ;
long l ;
float f ;
double d ;
cout << "sizeof a bool = " << sizeof b << endl ;
cout << "sizeof a char = " << sizeof c << endl ;
cout << "sizeof an int = " << sizeof n << endl ;
_________________
105 стр. Глава 8. Первое знакомство с указателями в С++
cout << "sizeof a long = " << sizeof l << endl ;
cout << "sizeof a float = " << sizeof f << endl ;
cout << "sizeof a double= " << sizeof d << endl ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}
Оператор sizeof представляет собой специальную инструкцию С++, которая возвращает размер своего аргумента в байтах. Вот как выглядит вывод данной программы, скомпилированной Dev-C++:
sizeof a bool = 1
sizeof a char = 1
sizeof an int = 4
sizeof a long = 4
sizeof a float = 4
sizeof a double= 8
Press any key to continue...
«He удивляйтесь, если при использовании другого компилятора вы получите другие результаты. Например, может оказаться, что размер int меньше размера long. Стандарт С++ не оговаривает точные значения размера тех или иных типов — он говорит только о том, что размер типа int не превышает размера long, а размер double не может быть меньше размера float. Размеры, приведённые выше, типичны для 32-битовых процессоров ( типа Pentium ).»
[Советы]
►Что такое адрес...106
Очевидно, что каждая переменная С++ расположена где-то в памяти компьютера. Память разбита на байты, каждый из которых имеет свой адрес — 0, 1, 2 и т.д.