接受指针地址?

时间:2016-12-15 07:52:38

标签: c

这是源代码

#include<stdio.h>
void main()
{
int *p,a=5;
p=&a;
scanf("%d",p);
printf("%d\t",*p);
printf("%d",a);
}

我们如何接受指针的地址?.Cuz它具有变量的地址&#39; a&#39;已经。编译器没有显示错误。 此外,我无法理解输出。

输出:(如果输入为45)

45   45 

2 个答案:

答案 0 :(得分:1)

您的指针也是a之类的变量,并且拥有自己的地址。您可以通过说&p来访问它。但你说scanf("%d", p);所以它正在访问指针的指向地址。

编辑:如果您想打印指针的地址,可以使用printf("%p\n",(void *) &p);

答案 1 :(得分:0)

您可以通过地址&amp; p

访问指针本身
//Instead of include "test.txt";
//we include the part manual by eval
$cont = file_get_contents("test.txt");
//Strip of leading <?php and eval the string
eval(substr($cont, 5));

也谨慎使用它,它不可移植并可能导致未定义的行为。它可以在32位机器上工作,因为int和int *具有相同的位长度,但对于其他CPU可能不起作用。