Я нашел это на geeksforgeeks
char *getString()
{
char *str = "Nice test for strings";
return str;
}
int main()
{
printf("%s", getString());
getchar();
return 0;
}
Вывод: «Хороший тест для строк»
Я пробовал искать функции указателя, но это не так. Если бы вы могли указать мне, чтобы узнать, как это делается. Это было бы хорошо
char *getString()
? Это функция, возвращающаяchar*
. - person tkausl   schedule 19.04.2021getString
— это функция, и она возвращает указатель. - person MSalters   schedule 19.04.2021char *str = "Nice test for strings";
, куда, по вашему мнению, указывает указательstr
? - person Andrew Henle   schedule 19.04.2021str
, а значениеstr
возвращается. Вы можете безопасно возвращать значение переменной в стеке. В противном случаеint i = 3; return i;
не будет в безопасности. - person David Schwartz   schedule 19.04.2021char *str = "Nice test for strings";
означает, чтоptr
указывает на строковый литерал, который неявно равенstatic
. Возвращается значение, содержащееся вstr
- по значению, поэтому адрес, возвращаемый по значению, всегда будет ссылаться на строковый литерал. - person Andrew Henle   schedule 19.04.2021str
является указателем и возвращается по значению - person Stefan Riedel   schedule 19.04.2021str
, является адресом. C 2018 6.2.5 20 говорит: «… Тип указателя описывает объект, значение которого предоставляет ссылку на объект указанного типа». Символы по этому адресу не содержатся вstr
.return str;
возвращает значениеstr
. - person Eric Postpischil   schedule 19.04.2021