C *和&;的含义;符号

C *和&;的含义;符号,c,pointers,C,Pointers,此代码中的*和&符号是什么意思: #include<stdio.h> main() { char *p; p="hello"; printf("%s\n",*&*&p); } #包括 main() { char*p; p=“你好”; printf(“%s\n”、*&*&p); } printf语句在上述程序中起什么作用?具体来说,*&*&p是什么意思?这些: *&*& 这些代码是多余的,在实际项目中您永远不会遇到这样荒谬的代码。符号取

此代码中的
*
&
符号是什么意思:

#include<stdio.h>
main()
{
  char *p;
  p="hello";
  printf("%s\n",*&*&p);
}
#包括
main()
{
char*p;
p=“你好”;
printf(“%s\n”、*&*&p);
}
printf
语句在上述程序中起什么作用?具体来说,
*&*&p
是什么意思?

这些:

*&*&
这些代码是多余的,在实际项目中您永远不会遇到这样荒谬的代码。符号取地址
p
,星号
*
将其解引用以生成原始
字符*
。我们来回走

可以这样想:

*(&(*(&p)))


顺便说一句,在现代编译器中,
main
的无类型签名将无法在不再假定返回类型为
int
的情况下将其删除。

printf将打印字符串
“hello”
因为
&
地址的
运算符,它将返回指针的地址,后跟它;
*
值的
运算符,它将返回指针地址中存储的值

因此,本质上,语句
*&*&p
将为

valueOf(addressOf(valueOf)(addressOf(p)))

它将返回存储在实际位置的字符串
“hello”


希望这对你有帮助

做些调查。拿起一本教程
printf
并不完全是一个晦涩难懂的函数。我想,困难在于指针语法,但指针也不完全晦涩难懂。这已经是你的第二个问题了,两个问题都以“我不明白……”开头。请更准确地阐述你的问题。这里你的问题显然与你在标题中提到的
printf
无关,而是关于
&*&*
之类的东西。另外,请在提问之前展示你所付出的努力。可能是thankx的重复我得到了它…括号真的helped@GhostIscuming就是这样!虽然不太可能遇到这样的情况,但是嘿,为什么不做好准备呢?看看这个,它一定会派上用场的。