char* mystrcpy(char* dest, const char* src)
{
int i;
for (i = 0; i < mystrlen2(src); i++) dest[i] = src[i];
dest[i] = '\0';
return dest;
}
ответ
Строки реализованы в C как массивы символов и доступны через указатель на первый элемент массива. Символы char в этой функции являются такими указателями.
Правильный ответ, который позволяет избежать множества ошибочных представлений о указателях, массивах и строках. –
Спасибо за ваши ответы. Теперь я понимаю. –
@TomekM прошу «принять» ответ Кэтрин, если он вам поможет. –
функции часто пишутся так, что аргумент, передаваемый в функцию, возвращается в качестве значения, для удобства, чтобы позволить более свободно код вызова, например
printf("%s", mystrcpy(target, source));
Другой пример функции, возвращающей аргумент назначения is
char *strcat(char *strDestination, const char *strSource);
- 1. Почему мы используем указатель на указатель
- 2. Почему мы пишем окно.?
- 3. Почему для sqlite3_open мы используем двойной указатель **, а для sqlite3_prepare мы используем указатель *
- 4. Почему мы пишем тестовые примеры?
- 5. Почему мы использовали указатель в этой программе?
- 6. Почему мы используем SpreadsheetApp.flush() ;?
- 7. Почему мы используем HttpContext.Current?
- 8. Почему мы используем жидкость?
- 9. Почему мы используем прототипы
- 10. Почему мы используем «const char * const * argv» вместо «char *»?
- 11. Почему мы используем easytracker?
- 12. Почему мы используем SimpleLoadTimeWeaver?
- 13. Почему мы используем tq_struct?
- 14. Почему мы используем struts.custom.i18n.resources?
- 15. Почему мы используем xml?
- 16. Почему мы используем константы?
- 17. Почему мы используем system.out.flush()?
- 18. Почему мы используем web.xml?
- 19. Почему мы используем TaskStackBuilder?
- 20. Почему мы используем HTTP?
- 21. Почему мы используем jquery.klass?
- 22. Почему мы используем указатель в NSInteger, но не в NSNumber?
- 23. Почему мы используем дополнительное выражение?
- 24. Почему мы используем «({})» в jQuery?
- 25. Почему мы используем указатель структуры внутри определения структуры в C?
- 26. Почему мы используем бесконтактный интерфейс?
- 27. Почему мы пишем «-> Пустота» в Swift?
- 28. Почему мы должны преобразовывать все в char *, когда мы пишем его в файл?
- 29. Почему мы используем менеджеров памяти?
- 30. По какой причине мы не должны устанавливать multipleSiteBindingsEnabled = true?
Я не могу ответить на этот вопрос, потому что я не знаю, почему вы думаете, что * не будете использовать указатели в этой функции. Не могли бы вы рассказать нам, что вы ожидали от этого, а также немного рассказать о том, почему это удивляет вас тем, что здесь участвуют указатели? – zwol
Вы спрашиваете, почему тип возврата является 'char *' или почему синтаксис является 'char * mystrcpy'? –