C中的指针(指针的值)?

1 c pointers

C语言:
如果(p)是一个声明如下的指针:

int a=5, *p; p = &a;

什么是*P将打印?

unw*_*ind 5

*p不会"打印"任何东西; 这只是一个取消引用指针的表达式,并产生int它指向的任何值.

您可以使用以下方式打印:

printf("*p=%d\n", *p);
Run Code Online (Sandbox Code Playgroud)

并且它将5在你的程序中打印,因为p点数a和值a5.

%d重要的是,它告诉printf()我们期望一个int值,并将其格式化为字符串以进行打印.

您也可以打印指针本身:

printf("p is %p, a is at %p\n", p,  (void *) &a);
Run Code Online (Sandbox Code Playgroud)

这将两次打印相同的地址.该%p格式说明用于打印的地址.