1
A
回答
1
p
是一个指向int
的指针,*p
将是变量的值。在这种情况下,a
。只是为了简单起见,您可以将&
视为the address of
,*
作为the content of pointer
,因为这篇文章The 5-minute Guide to C Pointers指出。
记得a
和p
是唯一的名字,它们代表一个变量。假设a
的地址是1024
(这几乎不是真实的情况)。他们的关系如下图所示。 a
的值是5
,当我们使用p = &a
时,我们将a
的地址,即1024
分配给p
。 *p
将检索值the address p pointer to
,这是您正在寻找的值:5
。
pic http://cizixs.u.qiniudn.com/pointer
如果你要打印的淡水河谷,@unwind给出了答案。
Here是一个教程,可能会澄清c指针给你。
5
*p
不会“打印”任何东西;这只是一个表达式,它引用指针,并产生任何指向它的值。
您可以打印:
printf("*p=%d\n", *p);
,它会在你的程序在a
打印5
因为p
点,并a
值5
。
%d
很重要,它告诉预期值为int
,并将其格式化为打印字符串。
您还可以打印指针本身:
printf("p is %p, a is at %p\n", p, (void *) &a);
这将打印相同的地址两次。格式说明符%p
用于打印地址。
1
p是一个指向int的指针。这意味着它可以指向一个地址,其中将存储一个int。
写作
p = &a
你设置的指针指向在整数的地址被存储。
当您尝试打印* p时,您将获得存储在指针p指向的地址中的值。所以你会得到5.
请记住,运算符&
返回一个变量的地址。所以&a
将返回变量a
的地址。另外,当你想获得存储在地址中的变量值时,如果你有一个指向这个地址的指针,你可以使用解引用运算符*
。因此,*p
返回存储在p
指向的地址中的值。
0
p = &a;
p是指向a的指针。即p保持地址a
。和
*p
会给出一个值。由于&
用于获取变量的地址,因此*
用于取消引用指针,即获取指针所指向的变量的值。
相关问题
- 1. 指针值C空指针
- 2. 指向C中的指针的指针
- 3. 指针的大小,指向C中指针的指针
- 4. 指针指针(C++)
- 5. 指针vs指针指针C
- 6. C++中的指针分配。 (指针的指针到指针位于LHS)
- 7. C++ - 指向数组的指针 - 指针
- 8. C++指向指针的指针
- 9. 指向C++指针的指针
- 10. 指针指针数组中的指针的值
- 11. Objective-C中指针的指针
- 12. C指针队列中的指针
- 13. C++中函数指针的指针
- 14. 在C++中为指针指定指针
- 15. 将值指针传递给c函数中的指针值
- 16. C/C++指针数组VS指针的指针
- 17. C - 释放指针指针
- 18. 指针在C指针
- 19. C++约指针+非指针
- 20. **指针和*指针C
- 21. JNI&C - 指针指针
- 22. C指针双指针
- 23. C++矢量指针指针
- 24. C指针指针问题
- 25. C指针,指针,字符
- 26. C指针指针数组
- 27. Memoryleak指针指针,C++
- 28. Delphi中指针的指针
- 29. 指针的指针的指针
- 30. 由双指针指向的指针值丢失(c代码)
功课? :D ... – egig
亲自尝试! –
试着在大学!有疑问.. – user154522