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