c - 尝试使用指针将数组元素从一个数组传递到另一个数组......没有得到?

标签 c

嗨, friend 们,我是 C 语言的新手,正在努力理解它。

我有这两个 char 数组,一个是初始化的,另一个是刚刚声明的,我只是想将元素从数组状态复制到 arr 并打印它。它编译,但打印出一个垃圾值....

请帮帮我

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
     int i = 0;
     char *arr[3];
     char *state[3] = {"California", "Oregon", "Washington", "Texas"};

     for(i=0; i<3; i++)
     {
         arr[i] = state[i];
         printf("%s\n",arr+i);             
     }

     arr[0] = state[0];

     printf("%s\n",arr[0]);
     system("pause");

     return 0;    
}

最佳答案

打印 arr+i 可能不是您想要的。相反,您需要 arr[i],这是一个更深的间接级别。

具体来说,a[b]*(a+b)完全相同。

关于c - 尝试使用指针将数组元素从一个数组传递到另一个数组......没有得到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15656924/

相关文章:

c - 内核土地套接字连接超时

c - dup2() 正在阻止输出

涉及管道的c并行进程

c - 在裸机 c 中使用多重精度

c - 使用 GCC 生成 a.out 文件格式

C,一个数组需要的内存空间是否比它的元素更多?

c - 构建 Linux 内核模块的问题

c - 可能的错误 - 将一个流与一个已经有关联的 FD 相关联?

c - 如何验证给定散列和公钥的数字签名?

c - 如何编写一个评估 shell 命令的 c 程序