我编写了一个小型测试程序,看看如何将指向 char 数组的指针传递给函数。这是我的代码:
#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;
}
我对指针的了解告诉我 org 是一个指针,它传递了 original[0] 的内存地址,当我执行这个程序时,我观察到一些让我感到困惑并让我怀疑我所了解的关于指针的事实的事情.
当我打印 org 时,我得到了完整的单词。但是根据逻辑,如果指针不应该打印出内存地址;
当我尝试打印 out[1] , out[2] 时,键盘告诉我进程异常结束
我对这个问题的基本疑问是 org 到底在做什么,我知道它是一个指向内存地址的 char 指针(哪个??)。任何帮助,将不胜感激 。我对 c 编程很陌生。
另外,当我尝试像这样的while循环时
while(out[i] !='\0')
printf("%s",out[i]);
它不会在 '\0' 处终止。strcpy 文档指出 '\0' 被复制到 char 数组中。