我的c代码为p的每个输入提供相同的输出?

时间:2016-09-02 16:46:17

标签: c

#include <stdio.h>

int main(int argc, char **argv) {
    // your code goes here
    char *p;
    p = "hello";

    printf("%s",*&*&p);
    return 0;
}

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

2 个答案:

答案 0 :(得分:1)

p是指向字符串&#34; hello&#34;的指针。 &amp; p是p的地址,所以*&amp; p将是p的地址处的值,这又是指向字符串的指针&#34;你好&#34;

答案 1 :(得分:0)

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

因此:
p是字符串hello的起始地址 *&p表示向我提供p位置的任何内容(即hello开头的地址)。
*&*&p表示向我提供位于p

位置的任何内容

所以这些只是给你p