OrmaJever пишет: чтоже в одинарных?
В одинарных - одиночный символ. При чем "a" - это 2 символа - 'а' и '\0', т.е. строка из одного символа один символ - разные вещи)
OrmaJever пишет:Блин вот хочется выучить но вся информация разбросана по интернету
В той ссылке, которую я привел, были приведены ссылки на какие-то книжки, а автор той темы, по-моему, вполне разумный человек и очень хочет других научить Си, так что вот как раз думаю, что чем лазить по инету, поучавствуй в том деянии.
OrmaJever пишет:char str;
// и
char* str = new char(10);
В первом случае str - переменная типа Символ. Во втором - str - это указатель на Символы и указывает он на место длиной 10 Символов.
OrmaJever пишет:str = 'dasdas';
Опять одиарные кавычки) Ничего он не выделит str останется символом.
Я раньше думал, что такая запись вообще ошибку выдаст, но вроде не выдает, судя по
OrmaJever пишет:почему то выводится
(Добавление)
Если написать char *str = "qwerty"; То выделится память под str и в эту память поместится строка. При написании в двойных кавычках происходит такая вещь: выделяется память под qwerty, получается на нее указатель и этот указатель записывается в str.
Т.е. написать
CODE (
text):
скопировать код в буфер обмена
char *str = new char[10];
str = "qwerty"; // это не правильно, потмоу что str уже ссылается на определенное место
strcpy(str, "qwerty"); - правильно. Данные qwerty скопируются в область памяти, на которую ссылается str
str[0] = 'q';
*(str + 1) = 'w';
...
str[6] = 'y';
str[7] =0; // так тоже можно
PS. Вероятно, могу где-то чудить)