Arrays 在C语言中寻址某个数组位置

Arrays 在C语言中寻址某个数组位置,arrays,strcpy,Arrays,Strcpy,我正在努力学习C语言,所以在做一些练习时遇到了一个我不理解的问题 我创建了一个字符数组buf[100][100],其中存储了一些字符串。 现在,我想使用strcpy命令将某个字符串更改为另一个字符串。 但是当试图用一个整数(z)来处理它时,它不想工作。但是,当我用一个值手动寻址数组时,它会按预期工作 有人能给我解释一下吗 提前谢谢大家,, 萨姆 代码: int main() { char buf [100][100]; int i=0,j=0; int lijn;

我正在努力学习C语言,所以在做一些练习时遇到了一个我不理解的问题

我创建了一个字符数组buf[100][100],其中存储了一些字符串。 现在,我想使用strcpy命令将某个字符串更改为另一个字符串。 但是当试图用一个整数(z)来处理它时,它不想工作。但是,当我用一个值手动寻址数组时,它会按预期工作

有人能给我解释一下吗

提前谢谢大家,, 萨姆

代码:

int main() {
    char buf [100][100];
    int i=0,j=0;
    int lijn;
    int x,k;
    int z;

    char stringN [100];
    FILE * fpointer = fopen("employees.txt","r");

    if (!fpointer) { return 1; }
    printf("regel nummer?:");
    scanf("%d",z);
    printf("nieuwe regel");
    scanf("%s",stringN);

    while(fgets(buf[i],100,fpointer)!=NULL){
        i++;
        j++;
    }


    strcpy(buf[z], stringN);
    strcat(buf[z], "\n");
    x=0;

    for (k=j;k>=1;k--){
        printf("%s",buf[x]);
        x++;
    }

    return 0;
}
这是错误的。您必须传递变量的地址,i。e

    scanf("%d", &z);

正如你所说,发布代码是没有意义的。发布不起作用的代码,最好是一个完整的程序。谢谢,成功了。但是你能告诉我为什么我需要将它“保存”到address而不是变量吗?直观地将其保存到变量的地址,或者如果要使用该变量的值,则将其保存到变量的结果相同。尤其是在fget()命令中不需要它。如果将
z
赋给
scanf
,则传递变量的(未定义)值。但是
scanf
需要知道它必须在哪里存储转换后的整数,即。E变量的地址。询问
fgets()
:在这里(以及
scanf(“%s”,stringN)
)实际上是一样的,只是将数组传递给函数时隐式转换为其地址。啊哈!所以我得出结论,当您想从数组打印或存储到数组时,可以使用变量对其进行索引。但是当你想用它做一些奇特的函数,比如strcpy,strcat,等等,你必须用这个变量的地址索引。谢谢你的帮助!这个结论听起来是错误的。只有在需要地址的情况下,传递变量的地址才足够,特别是当被调用函数要存储某个值时,尤其是在索引时。这不一定与打印或存储到可以索引的数组有关。您的编译器可能有一些选项,如
-Wall
,以提供帮助。我必须阅读一些有关此主题的内容。但再次感谢所有的帮助!
    scanf("%d", &z);