开发平台(Platform): (Ex: Win10, Linux, ...)
online c compiler
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
gcc
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
NA
问题(Question):
想请教为什么 a 与 *a 的 %p address 会是一样的呢?
我的理解是 int (*a)[6] 是指向一个长度为 6 的 int 型态的指标,所以 a 应该会存放
&str 位置
printf a 会出现 &str 这部分可以理解。
但 printf *a 应该是对 a 取值再用%p显示,所以会得到 0x68 也就是 'h'。
还请各位大神指导,感谢!
虽然这种方式好像很少使用XD
喂入的资料(Input):
NA
预期的正确结果(Expected Output):
run:
a address: 0x7ffdd628c6d2
*a address: 0x7ffdd628c6d2
expect:
a: 0x7ffdd628c6d2
*a: 0x68
错误结果(Wrong Output):
NA
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
char str[6] = "hello";
char (*a)[6] = &str;
printf("a address: %p\n", a);
printf("*a address: %p\n", *a);
补充说明(Supplement):