(#) include < stdio.h >
int main () {
int a = 10;
int *p;
p = &a;
//Pointer arithmetic
printf("Address p is %d\n", p); //error here
printf("Value at address p is %d\n", *p);
printf("Size of integer is %d bytes\n", sizeof(int)); //error
printf("Address p+1 is %d\n", p+1); //error as well
printf("Value at address p+1 is %d\n", *(p+1));
return 0;
}
好的,如上所述,我正在研究Objective-C下的指针。 注意:这是我第一次使用Mac Sierra 10.12.5在Xcode版本8.3.3下学习。
我遇到的错误是,我引用:&#34;格式指定类型&#39; int&#39;但是参数的类型为&#39; int *&#39; &#34; 即可。
我是否需要下载其他库或者是他们缺少的东西 - 要淘汰这个错误?
非常感谢帮助和终端代码,以帮助解决此错误。
请和谢谢 - 道歉,这是我第一次使用stack-over-flow问题和网站。
答案 0 :(得分:0)
%d
是格式说明符。 %d
特别用于打印int
类型的参数。p
不是int
,它是指向int的指针,类型int*
。%p
格式说明符。*p
的类型为int
,因为您已取消引用指针。对于此类参数,您应使用%d
。作为旁注,sizeof
的结果不是int
,而是另一个名为size_t
的整数类型。要打印此文件,您需要使用%zu
。