use*_*147 -22 c pointers dereference
#include<stdio.h>
int main()
{
char *p = NULL;
char str[] = "How do you do!!!!!";
p = &str;
printf("String is:%s",p);
p = "HELLO HOW ARE YOU";
printf("String is:%s",p);
printf("Hello");
int a = 10;
int *pa;
pa = &a;
printf("Contents of a is %d\n",a);
printf("Contents of pa is %x\n", (int)pa);
printf("Values of variable pointed to by pa is %d\n", *pa);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在参考上面的代码时:
p = &str;
printf("String is:%s",p);
Run Code Online (Sandbox Code Playgroud)
p将显示存储的字符串.
pa = &a;
printf("Values of variable pointed to by pa is %d\n", *pa);
Run Code Online (Sandbox Code Playgroud)
但在这里,如果我想显示价值,a=10我将不得不写*pa.
为什么这样 ?这两者有什么区别?
为什么一个在使用时显示正确p,另一个在使用时显示正确*pa
在一种情况下使用derefernce操作符,而在另一种情况下不需要derefernce操作符