鱼C论坛

 找回密码
 立即注册
查看: 1446|回复: 2

[已解决]指针什么时候可以赋值,什么时候不可以赋值

[复制链接]
发表于 2016-2-16 16:17:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>

void main()
{
     int *p,i=100;
     *p = 20;
     p = &i;
     printf("*p=%d\n",*p);
      printf("%x\n",p);
      printf("i=%d\n",i);
      printf("%x\n",&i);
}
这个如果把 *p = 20;去掉,就可以打印出来,

void main()
{
      int i1 = 30;
      int i2 = 40;
      int *const pi = &i1;
      *pi = 80;
      printf("%d\n",*pi);
}
而这里*pi = 80;是没有问题的,怎么感觉有点晕了,越来越糊涂了。
最佳答案
2016-2-16 16:36:34
void main()
{
     int *p,i=100;
     *p = 20;
     p = &i;
     printf("*p=%d\n",*p);
      printf("%x\n",p);
      printf("i=%d\n",i);
      printf("%x\n",&i);
}


*p = 20;
   p = &i;
这两句写反了,应该是

p = &i;
*p = 20;

  int *p,i=100; 这句中的 *p 只是说明 p 是个指针
*p = 20; 这句中的 *p 是引用 p 指向地址的内容

如果这样写
*p = 20; // 这里的 p 还没有赋值
  p = &i;
p 就引用了一个 未知 的地址

void main()
{
      int i1 = 30;
      int i2 = 40;
      int *const pi = &i1;
      *pi = 80;
      printf("%d\n",*pi);
}

int *const pi = &i1;
*pi = 80;

这里的 pi 既说明是指针类型,又给pi 赋值为 i1 的地址,所以下面就可以使用 这句  *pi = 80;

如果上面那个这样写也行
int i=100;
int *p = &i;

     *p = 20; // 这里的 p 已经赋值
     p = &i; // 上面已经给 p 赋值了,这里就不需要了,可以删掉,但是不删也不会影响程序运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-2-16 16:36:34 | 显示全部楼层    本楼为最佳答案   
void main()
{
     int *p,i=100;
     *p = 20;
     p = &i;
     printf("*p=%d\n",*p);
      printf("%x\n",p);
      printf("i=%d\n",i);
      printf("%x\n",&i);
}


*p = 20;
   p = &i;
这两句写反了,应该是

p = &i;
*p = 20;

  int *p,i=100; 这句中的 *p 只是说明 p 是个指针
*p = 20; 这句中的 *p 是引用 p 指向地址的内容

如果这样写
*p = 20; // 这里的 p 还没有赋值
  p = &i;
p 就引用了一个 未知 的地址

void main()
{
      int i1 = 30;
      int i2 = 40;
      int *const pi = &i1;
      *pi = 80;
      printf("%d\n",*pi);
}

int *const pi = &i1;
*pi = 80;

这里的 pi 既说明是指针类型,又给pi 赋值为 i1 的地址,所以下面就可以使用 这句  *pi = 80;

如果上面那个这样写也行
int i=100;
int *p = &i;

     *p = 20; // 这里的 p 已经赋值
     p = &i; // 上面已经给 p 赋值了,这里就不需要了,可以删掉,但是不删也不会影响程序运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-16 17:10:13 | 显示全部楼层
哦,明白了,谢谢大师的指点。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 20:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表