【发布时间】:2019-10-18 08:14:55
【问题描述】:
我的作业待定,因为我无法理解这段代码。这段代码有错误吗?如果有,请告诉我在哪里。
#include <stdio.h>
void main()
{
int arr[5] = {10, 20, 30, 40, 50};
int *ptr1 = arr;
int *ptr2 = &ptr1;
printf('%d", **ptr2);
}
【问题讨论】:
-
当你尝试编译它时会发生什么?
-
这个问题似乎根本没有包括任何解决问题的尝试。请编辑问题以显示您尝试过的内容,并显示您遇到的特定障碍。欲了解更多信息,请参阅How to Ask。
-
编译器抱怨
int *ptr2 = &ptr1;行,不是吗?它也抱怨printf("%d", **ptr2)。我抱怨void main()行——它在微软系统上只是模糊有效。你应该使用int main(void)。您还应该使用换行符结束您的printf()格式:printf("%d\n", **ptr2);。 -
@JonathanLeffler 哦,是的!我有同样的错误。那么,正确的代码是什么?
-
Vlad from Moscow said 对我来说是正确的 - 并选择了我没有找到的不匹配的引号(但不建议在格式字符串的末尾使用换行符)。跨度>
标签: c initialization declaration implicit-conversion