luan55555 2015-04-25 08:40 采纳率: 0%
浏览 4530

在指针中P和*p 到底哪个代表指针所对应的地址?哪个是代表该地址内所对应的值?

在指针中P和*p 到底哪个代表指针所对应的地址?哪个是代表该地址内所对应的值?老是搞不清二者的区别。请帮忙讲解一下。谢谢
void swap(int *p,int *q)
{
int temp;
temp=*p;
*p=*q;
*q=temp;

}

和上面有什么区别?

void swap(int *p,int *q)
{
int *temp;
temp=p;
p=q;
q=temp;

}
为什么一个值交换了 一个没有交换?

  • 写回答

5条回答 默认 最新

  • bullzerone 2015-04-25 12:52
    关注

    int p 这是声明一个变量,这个变量是一个指针,就是说在声明的时候 * 和p 一起出现,表示p是一个指针变量。p的值是另一个变量的地址。
    当不是声明的时候 * 和 p 一起出现的时候,*P 就表示p所指向内存单元的值。
    在下面的函数部分
    int *temp; 这是声明或者说是定义,
    和 temp 一起出现,表示temp是一个整型指针变量。temp的值是另一个整型变量的地址。

    而上面的函数中,
    *P 和*q 都不是在声明的时候出现,所以*p和*q都代表的p和q所指向内存单元的值,而不是地址

    评论

报告相同问题?

悬赏问题

  • ¥20 怎么在stm32门禁成品上增加记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app