Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的c代码为p的每个输入提供相同的输出? 包括 int main argc,字符**argv{ //你的密码在这里 char*p; p=你好; 打印%s、*&*&p; 返回0; }_C - Fatal编程技术网

我的c代码为p的每个输入提供相同的输出? 包括 int main argc,字符**argv{ //你的密码在这里 char*p; p=你好; 打印%s、*&*&p; 返回0; }

我的c代码为p的每个输入提供相同的输出? 包括 int main argc,字符**argv{ //你的密码在这里 char*p; p=你好; 打印%s、*&*&p; 返回0; },c,C,它为p、*&p、*&*&p提供相同的输出。这怎么可能呢?p是指向字符串hello的指针&p是p的地址,所以*&p将是p的地址处的值,它同样是指向字符串hello的指针。*表示给出内存中该位置的任何内容。 &提供此对象的内存地址 因此: p是字符串hello的起始地址。 *&p的意思是给我在p的位置上的任何东西,即hello开始的地址。 *&*&p的意思是给我在p的位置上的任何东西 所以所有这些都只是给你p.你期望什么呢?p的值怎么可能是hello。p存储地址。有人能解释一下这段代码的步骤吗?p存

它为p、*&p、*&*&p提供相同的输出。这怎么可能呢?

p是指向字符串hello的指针&p是p的地址,所以*&p将是p的地址处的值,它同样是指向字符串hello的指针。

*表示给出内存中该位置的任何内容。 &提供此对象的内存地址

因此: p是字符串hello的起始地址。 *&p的意思是给我在p的位置上的任何东西,即hello开始的地址。 *&*&p的意思是给我在p的位置上的任何东西


所以所有这些都只是给你p.

你期望什么呢?p的值怎么可能是hello。p存储地址。有人能解释一下这段代码的步骤吗?p存储字符串hello开始的地址。但是p不能存储值,它应该是一个地址?所以存储在p中的地址被发送到printf,printf开始在该地址打印字符,直到当我们给p=20时它看到\0,printf%d,*&*&p;那么它将无法正常工作?@NishantKumar是的,它将试图从内存地址20读取数据,这可能是无效的,因此您将得到一个seg错误。@NishantKumar您应该得到一个编译器错误,因为您正在将一个int赋值给一个char*ok,如果char p=hello;printf%s,p;它打印错误,但字符*p;p=你好;printf%s,p;它打印Hellobe,因为char p表示p是单个字符而不是字符串。char*p表示p是指向字符串的指针。请参阅以了解。在可视化之后,这真的很有帮助。这就是我要找的。非常感谢