Я написал небольшую тестовую программу, чтобы увидеть, как передать указатель на массив символов функции. Это мой код:Передача указателя на массив символов в c
#include <stdio.h>
#include <string.h>
int scopy(char *org){
printf("the value of org is %s" , org);
printf("\n");
}
int main(void)
{
char original[11];
strcpy(original , "helloworld");
scopy(original);
printf("the value of original now is %s" , original);
return 0;
}
Мои знания указателей говорят мне, что орг является указателем, который передается адрес памяти оригинала [0], когда я исполняю эту программу я наблюдаю несколько вещей, которые смутили меня и заставил меня усомниться в фактах, которые я узнал о указателях.
Когда я печатаю org, я получаю полное слово назад. но в соответствии с логикой, если указатели не должны печатать адрес памяти;
когда я пытаюсь распечатывания из [1], из [2], codepad говорит мне, что процесс завершился ненормально
Моя основная сомнения в этом вопросе является то, что именно орг делать, я понимаю, что это указатель char, указывающий на адрес памяти (который?). Любая помощь будет оценена по достоинству. Я очень новичок в программировании.
Кроме того, когда я пытаюсь время цикла, как
while(out[i] !='\0')
printf("%s",out[i]);
не прекращается в «\ 0». в документации strcpy указано, что '\ 0' скопирован в массив символов.