C 指针:关于指针的查询

C 指针:关于指针的查询,c,pointers,expression,indirection,addressof,C,Pointers,Expression,Indirection,Addressof,我在学C和C。我正在学习指针,不知道将间接运算符和地址运算符组合起来意味着什么。将两者结合起来意味着什么 以下是一个例子: int *p, *q; p = *&q; 它意味着它必须意味着什么。:) 如果从左到右阅读,则右侧仅表示“通过跟随值为q地址的指针检索的值” 与p=*(&q)相同,因此它与p=q 我甚至没有注意到,但是您的程序将p和q声明为指针是错误的。不会编译的,应该是: int p, q; p = *&q; 此外,这可能有点定义不清,因为在读取之前

我在学C和C。我正在学习指针,不知道将间接运算符和地址运算符组合起来意味着什么。将两者结合起来意味着什么

以下是一个例子:

    int *p, *q;
    p = *&q;

它意味着它必须意味着什么。:)

如果从左到右阅读,则右侧仅表示“通过跟随值为
q
地址的指针检索的值”

p=*(&q)相同,因此它与
p=q

我甚至没有注意到,但是您的程序将
p
q
声明为指针是错误的。不会编译的,应该是:

int p, q;

p = *&q;

此外,这可能有点定义不清,因为在读取之前,
q
从未分配过一个值,对此没有100%的把握。

它意味着它必须意味着什么。:)

&q;
如果从左到右阅读,则右侧仅表示“通过跟随值为
q
地址的指针检索的值”

p=*(&q)相同,因此它与
p=q

我甚至没有注意到,但是您的程序将
p
q
声明为指针是错误的。不会编译的,应该是:

int p, q;

p = *&q;
此外,这可能有点定义不清,因为
q
在被读取之前从未被赋值,对此不是100%确定

&q;
会给你变量q的地址,也就是说它是一个指向q的指针,我们可以写

int ** pointerToQ = &q;
如果我们说

*pointerToQ
我们要问的是EverPointerToq指向什么,也就是q本身。所以

*&q 
让我们回到q

会给你变量q的地址,也就是说它是一个指向q的指针,我们可以写

int ** pointerToQ = &q;
如果我们说

*pointerToQ
我们要问的是EverPointerToq指向什么,也就是q本身。所以

*&q 

让我们回到q.

您的示例将指针p设置为指针q的值。它对p和q指出的值没有任何影响。它只是将变量p设置为变量q的值,这两个变量恰好都是指向整数值的指针。让我们看一些例子:

*p = *q; // the value at the address pointed by q, gets copied to the address, pointed by p
p = &q; // this is illegal, since the type of &q is int ** (pointer to a pointer to an integer), but the type of p is int *

您的示例将指针p设置为指针q的值。它对p和q指出的值没有任何影响。它只是将变量p设置为变量q的值,这两个变量恰好都是指向整数值的指针。让我们看一些例子:

*p = *q; // the value at the address pointed by q, gets copied to the address, pointed by p
p = &q; // this is illegal, since the type of &q is int ** (pointer to a pointer to an integer), but the type of p is int *

&
可以看作是()的
地址。所以
&q
是q的地址。现在,
*
可以看作是()处的
值。因此*q基本上是存储在q中包含的地址处的值,即,
*
将变量视为始终包含地址。现在*&q,由结合性决定为*(&q)。也就是说

存储在(q地址)的值
与存储在q的值相同

q的地址将有另一个地址,因为q是指针。所以这和


p=q

&
可以被认为是()
运算符的
地址。所以
&q
是q的地址。现在,
*
可以看作是()处的
值。因此*q基本上是存储在q中包含的地址处的值,即,
*
将变量视为始终包含地址。现在*&q,由结合性决定为*(&q)。也就是说

存储在(q地址)的值
与存储在q的值相同

q的地址将有另一个地址,因为q是指针。所以这和


p=q

将其视为提升到一个权力并获得一个(正)根。基本上,他们只是互相抵消。把它看成是提升到一个权力,采取一个(积极的)根。基本上,它们只是相互抵消。