【发布时间】:2017-09-26 23:50:40
【问题描述】:
我是 C 编程新手,正在尝试处理指针和数组。我有个菜鸟问题想请教大家帮助我理解。
我正在使用 Xcode 运行我正在编写的一个非常简单的 C 程序。为了帮助我理解它是如何工作的,我从一个非常基本的程序开始,然后慢慢构建它来帮助学习。这是我的示例代码:
#include "stdio.h"
int main(){
int a[10] = {1,2,3,4,5,6,7,8,9,10};
int *p = &a[0];
printf("Address of first element of a = %d\n", p);
printf("Number of elements in array = %lu\n", sizeof(a) / sizeof(int));
}
在 Xcode 中,第一行 printf 会产生一条警告,指出“格式指定类型 'int' 但参数的类型为 'int *'。
如果我能弄清楚为什么会发生这种情况以及我编写此代码的正确方法是什么,我将不胜感激?这仍然编译并运行它会产生预期的结果。因此,虽然结果可能是正确的,但我个人需要了解这些警告的修复方法是什么。
非常感谢!
【问题讨论】: