C/C++

Что означает char* str и какие у нее особенности?

На самом деле, я не понимаю char* str от слова совсем. То есть, я знаю, что эта форма аналогична char str[ ], только лучше. Но я не знаю, что с ней как работать, какие вещи к ней можно применить

Пожалуйста, объясните простыми словами ее преимущества и то, чем отличается, как устроена.

P.s Я понимаю, как работает указатель
char str[13]; // это символьный массив, ему можно присвоить строковый литерал либо заполнить символами
char a[13] = "hello world!";
a[0] = 'H'; // так можно
const char* b= "Hello world!"; // константная строка, её нельзя изменить
b[0] = 'H'; // ошибка
char* str; // это указатель на char, он позволяет выделить память под динамическую строку
char* str = (char*)malloc(256 * sizeof(char)); // 256 байт == 256 символов, включая 0-терминатор
fgets(str, 13, stdin); // ввести сроку
puts(str); // прочитать её
free(str); // в конце работы с динамической строкой память следует освободить

Указатель на char* либо char[] можно передавать в функцию в качестве изменяемого параметра, чтобы изменения изменить параметр помечают как const

Указатель на char* можно использовать в качестве возвращаемого значения
7 Kz
7 Kz
74 730
Лучший ответ
Она не лучше. Просто char str[] - обозначение массива из символов, а char *str - обозначение указателя на символ, который многие функции воспринимают как начапо массива из символов. Массив отличается тем, что функции, внутри которой он объявлен, известна его длина. В массиве символов часто может содержаться строка - последовательность символов, заканчивающаяся нулевым символом. Но при передаче в функцию массива символов всегда передается только указатель на его начало, поэтому без дополнительного параметра функции неизвестна длина массива. Однако если функция рассчитана на работу со строками, она может найти по положению нулевого символа длину текущей строки в нем самостоятельно (но не длину массива, в котором была строка, он может быть намного длиннее).
Открой "Язык программирования C" от Кернигана и Ритчи. Глава - Указатели и массивы. Там тебе создатели языка всё подробно и понятно расписали, какие операции допустимы и зачем это нужно.
На ответах тебе так подробно не распишут. А чтива там дай бог страниц на 30, из которых, чтобы ответить на твой вопрос, достаточно прочитать страниц 10.
Виктор Карась
Виктор Карась
2 364