Информатика. Общая информатика. Основы языка C++. Мамонова Т.Е. - 154 стр.

UptoLike

Составители: 

A \0 A
“A”
строка
(2байта)
‘A’
символ
(1байт)
Рис. 22. Представление строки и символа
Присвоить значение строке с помощью оператора присваивания не-
льзя. Поместить строку в массив можно либо при вводе, либо с помо-
щью инициализации.
Пример 64
void main()
{
char s1[12]=“string1”;
int k=sizeof(s1);
cout<<s1<<”\t”<<k<<endl;
char s2[]=“string2”;
k=sizeof(s2);
cout<<s2<<“\t”<<k<<endl;
char s3[]={’s’,’t’,’r’,’i’,’n’,’g’,’3’}
k=sizeof(s3);
cout<<s3<<”\t”<<k<<endl;
char *s4=“string4”;//указатель на строку, ее
нельзя изменить
k=sizeof(s4);
cout<<s4<<”\t”<<k<<endl;
}
Результаты:
string1 10 – выделено 10 байтов, в том числе под \0
string2 8 – выделено 8 байтов (7+1байт под \0)
string3 8 – выделено 8 байтов (7+1байт под \0)
string4 4 – размер указателя
Пример 65.
char *s=”String5”; // выделяется 8 байтов для строки
char*ss; // описан указатель
ss=”String6”; //память не выделяется, поэтому программа мо-
жет закончиться аварийно.
char *sss=new char[12]; //выделяем динамическую память
strcpy(sss,”String7”); //копируем строку в память
154