int num = 90;  定义一个整型变量num

int* ptr = #  定义一个整型指针变量ptr,指针变量ptr的类型取决于他所需要指向的变量,如这里,ptr要指向int类型变量num,所以定义为int*变量,如果是      float类型变量num,则指针需要被定义为float * ptr

*prt = num;  此处说明*ptr的值等于num的值,即num = *ptr = 90

输出方面:

输出地址格式需要用%p

printf("%p,%p,%d", &ptr,ptr,*ptr);

其中:

&ptr  输出指针变量ptr的地址

ptr  输出指针变量ptr保存的值(一个十六进制的地址,若输出采用%d,则输出一个整数)

*ptr  输出指针变量ptr保存的地址的值(相当于直接找到地址修改地址保存的值)

——————————————————————————————————————————————————

实例:

void main(){

  int a = 300;

  int* ptr = a;

)

错误:原因是把int赋值给了int*,int* ptr需要赋值一个地址值,需要把赋值给 ptr的值改为&a即可

void main(){

  int a = 300;

  float *ptr = &a;

}

错误:指针变量指的类型不匹配,float指针指向了int类型的变量的地址

void main(){

  int a = 300;

  int b = 400;

  int* ptr = &a;

  *ptr = 100;

  ptr = &b;

  *ptr = 200;

  printf("\n a=%d,b=%d,*ptr=%d", a, b, *ptr);

}

看懂程序运行:

定义整型变量a,并赋值300

定义整型变量b,并赋值400

定义整型指针变量ptr,并把整型变量a的地址赋值给ptr

把a的值修改为100(此时由于ptr已经保存了a的地址,*ptr等同于a)

把整型变量b的地址赋值给ptr

把b的值修改为200(此时由于ptr已经保存了b的地址,*ptr等同于b)

按需输出!

最新文章

  1. MyEclipse运行前自动保存
  2. 从头开始 启动开源电商项目jShop
  3. Liunx0000(初步认识)
  4. 支持度(support)和置信度(confidence)
  5. IE下onchange事件不立即执行
  6. Java禁止浏览器有缓存的源码
  7. Swift基础之实现下拉变大和OC下拉变大上拉缩小Demo
  8. Maven deploy部署jar包到远程私仓
  9. 树状DP HDU1520 Anniversary party
  10. 编译Bootstrap,定制自己的模板
  11. (转)MFC鼠标单击消息拦截双击消息
  12. centos 6.5 单实例搭建 ELK
  13. 阿里巴巴将在美国推出电子商务网站11 Main
  14. 复制Map对象:Map.putAll方法
  15. Unity3D使用溶解技术解决障碍物遮挡
  16. 使用PowerShell自动部署ASP.NetCore程序到IIS
  17. C++ 莫队算法(转)
  18. 有关tensorflow一些问题
  19. Visual Studio 2015安装插件
  20. 【linux高级程序设计】(第十二章)Linux多线程编程 4

热门文章

  1. Jmeter-记一次自动化造数引发的BeanShell写入excel实例
  2. Modbus转BACnet IP网关
  3. Kafka与Spark案例实践
  4. WPF 截图控件之绘制箭头(五)「仿微信」
  5. Ubuntu14.04或16.04下普通用户的root权限获得
  6. 1. MGR简介 | 深入浅出MGR
  7. 技术分享 | 浅谈mysql语法解析调试方法
  8. OSSCore 开源解决方案介绍
  9. 无痕模式下 this.StorageManager.setItem) 本地存储丢失
  10. Docker 链接sqlserver时出现en-us is an invalid culture错误解决方案