C语言指针笔记01
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)
按需输出!
最新文章
- MyEclipse运行前自动保存
- 从头开始 启动开源电商项目jShop
- Liunx0000(初步认识)
- 支持度(support)和置信度(confidence)
- IE下onchange事件不立即执行
- Java禁止浏览器有缓存的源码
- Swift基础之实现下拉变大和OC下拉变大上拉缩小Demo
- Maven deploy部署jar包到远程私仓
- 树状DP HDU1520 Anniversary party
- 编译Bootstrap,定制自己的模板
- (转)MFC鼠标单击消息拦截双击消息
- centos 6.5 单实例搭建 ELK
- 阿里巴巴将在美国推出电子商务网站11 Main
- 复制Map对象:Map.putAll方法
- Unity3D使用溶解技术解决障碍物遮挡
- 使用PowerShell自动部署ASP.NetCore程序到IIS
- C++ 莫队算法(转)
- 有关tensorflow一些问题
- Visual Studio 2015安装插件
- 【linux高级程序设计】(第十二章)Linux多线程编程 4
热门文章
- Jmeter-记一次自动化造数引发的BeanShell写入excel实例
- Modbus转BACnet IP网关
- Kafka与Spark案例实践
- WPF 截图控件之绘制箭头(五)「仿微信」
- Ubuntu14.04或16.04下普通用户的root权限获得
- 1. MGR简介 | 深入浅出MGR
- 技术分享 | 浅谈mysql语法解析调试方法
- OSSCore 开源解决方案介绍
- 无痕模式下 this.StorageManager.setItem) 本地存储丢失
- Docker 链接sqlserver时出现en-us is an invalid culture错误解决方案