在下面的代码中,指针值和指针地址按预期不同.
但数组值和地址不行!
怎么会这样?
产量
my_array = 0022FF00
&my_array = 0022FF00
pointer_to_array = 0022FF00
&pointer_to_array = 0022FEFC
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>
int main()
{
char my_array[100] = "some cool string";
printf("my_array = %p\n", my_array);
printf("&my_array = %p\n", &my_array);
char *pointer_to_array = my_array;
printf("pointer_to_array = %p\n", pointer_to_array);
printf("&pointer_to_array = %p\n", &pointer_to_array);
printf("Press ENTER to continue...\n");
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud) 请帮我解决一些问题。
该文件包含:
AAAA 111 BBB
CCC 2222 DDDD
EEEEE 33 FF
Run Code Online (Sandbox Code Playgroud)
代码是:
int main() {
FILE * finput;
int i, b;
char a[10];
char c[10];
finput = fopen("input.txt", "r");
for (i = 0; i < 3; i++) {
fscanf(finput, "%s %i %s\n", &a, &b, &c);
printf("%s %i %s\n", a, b, c);
}
fclose(finput);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该代码确实有效。但是,会出现以下错误:
format «%s» expects argument of type «char *», but argument 3 has type «char (*)[10]
format «%s» expects argument of type «char *», …Run Code Online (Sandbox Code Playgroud)