指针学习笔记3
来源:互联网 发布:车辆轨迹 大数据分析 编辑:程序博客网 时间:2024/06/14 06:19
## 互换两个数字 ##
/***********************************************时间:2016.8.19 13:48*功能:实现两个数字值的互换*目的:深入了解基本类型指针用法***********************************************/#include <stdio.h>void swap1(int x,int y);void swap2(int *x,int *y);void swap3(int *x,int *y);int main(void){ int a = 3; int b = 5; printf("a = %d, b = %d",a,b); //交换前a,b的值: a = 3,b = 5 //swap1(a,b); //交换a和b的值,没影响 //swap2(&a,&b); //交换a和b的地址,没影响 swap3(&a,&b); //交换a和b的值,成功 printf("a = %d, b = %d",a,b); //交换后a,b的值:a = 5,b = 3}//交换x形参a、b的值,程序执行完成后,系统为形参分配的储存空间被释放//对实参a、b的值无影响void swap1(int x,int y){ int temp; printf("x = %d, y = %d",x,y); //测试是否成功交换形参x、y的值 temp = x; x = y; y = temp; printf("x = %d, y = %d",x,y); //测试是否成功交换形参x、y的值}//该函数并未成功交换实参a、b的值,只是交换形参x、y的地址(即x指向实参b,y//指向实参a,对形参a、b的值无影响)void swap2(int *x,int *y){ int *temp; //temp必须是int *类型,保持类型一致 temp = x; //交换x,y地址,使得指向内容改变 x = y; y = temp;}//该函数修改指针变量x、y所指向的内容,即实参a、b的值//成功交换a、b的值void swap3(int *x,int *y){ int temp; //temp必须是int类型,保持类型一致 temp = *x; //x是int *类型,*x是int类型 *x = *y; //交换x、y所指向内容,即交换实参a、b的值 *y = temp;}
小结
如何通过被调函数修改主调函数中普通变量的值
1、实参必须为该普通变量地址
2、形参必须为指针变量
3、在被调函数中通过 ‘’*形参名 = ………;‘’的形式就可以修改主调函数中普通变量的值
1 0
- 指针学习笔记3
- C++学习笔记 --- 指针3
- C++学习笔记(四)--指针(3)
- 指针学习笔记
- 指针学习笔记
- 函数指针学习笔记
- 指针学习笔记
- 指针学习笔记
- 指针学习笔记
- 指针学习笔记
- 学习笔记之 指针
- 指针学习笔记
- 函数指针学习笔记
- C 指针学习笔记
- 指针 学习笔记1
- 指针 学习笔记2
- 指针学习笔记
- C指针学习笔记
- Windows下一个复制和删除文件(文件夹)的bat脚本
- QCustomPlot的几个主要Class
- LeetCode进阶之路(Maximum Subarray)
- ngrok一款内网穿透+记录HTTP请求的神器(支持HTTPS) 24299465772016-08-19共28142人围观 ,发现 8 个不明物体
- 设计模式:策略模式(Strategy)
- 指针学习笔记3
- POJ1018(DP)
- SSH密钥登录让VPS下centos服务器更安全
- 单例模式的常见应用场景
- 设计模式:访问者模式(Vistor)
- Android 自定义Toast:轻松实现深度可定制化的Toast
- LeetCode 104: Maximum Depth of Binary Tree 题解
- Eclipse 安装svn插件
- 设计模式:各个模式间的对比