12-黑马程序员------C 语言学习笔记--- C语言指针与函数
黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
六 指针与函数
01 指针作为函数参数
指针作为实参时,与普通变量一样,也是采用单向的值传递方式,即将指针变量的值(该值是一个地址)传递给被调函数的形参(必须也是一个指针变量)。由于形参接受实参传递的值是一个地址,这样两者就指向了同样的变量。
*如果想要C语言中得函数调用实现多个值的改变,可以设计一个形参是指针变量的被调函数,这样主调函数的实参指针与被调函数的形参指针相结合,根据形参指针与实参指针指向同一地址的原理,就可以通过改变该地址中得值,实现主调函数与被调函数之间的数据传递,从而使被调函数实际返回多个值到主调函数。
// 输入两个整数,用自定义函数实现这两个值的交换,并在主函数中输出交换后的结果. #include <stdio.h> void swap(int *x,int *y); //函数声明int main() {int a,b; // 定义两个需要交换的整数int *p1,*p2; // 定义两个指向int类型的指针 printf("请输入两个数:\n"); // 输入两个整数scanf("%d%d",&a,&b); // 接受两个整数 printf("交换前a=%d,b=%d\n",a,b); // 输出交换前的整数 p1 = &a; // 使p1指向了xp2 = &b; // 使p2指向了yswap(p1,p2); // 调用函数交换a和bprintf("交换以后:a=%d,b=%d\n",a,b);}void swap(int *x,int *y) {int temp;temp = *x;*x = *y;*y = temp; }
02 返回指针值的函数
一般形式:
数据类型 *函数名(形参列表)
{
函数体;
}
03 指向函数的指针变量
可以把函数的首地址赋予一个指针变量,使该指针变量指向该函数,然后通过指针变量即可找到并调用这个函数,把这种指向函数的指针变量叫做函数指针变量。
一般形式:
数据类型 (*指针变量名)(函数形参列表)
#include <stdio.h>int main() {int a = 4474;int *p = &a;// p = &a;*p = 2;printf("%d\n",*p);// 变量类型 变量名;// 格式:变量类型 *变量名;// 定义了一个指针变量p// 指针变量只能存储地址// 指针就一个作用:能够根据一个地址值,访问对应的存储空间// 指针变量p前面的int:指针变量p只能指向int类型的数据return 0; }
转载于:https://www.cnblogs.com/iceshan/p/4492524.html
12-黑马程序员------C 语言学习笔记--- C语言指针与函数相关推荐
- 黑马程序员_java自学学习笔记(八)----网络编程
黑马程序员_java自学学习笔记(八)----网络编程 android培训. java培训.期待与您交流! 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无 ...
- 黑马程序员Java教程学习笔记(五)
学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(五) 日期时间:Date.Sim ...
- 【黑马程序员新版Linux学习笔记】Linux系统实用操作命令——操作演示
[黑马程序员新版Linux学习笔记]Linux 零基础快速入门: (一)Linux基本命令--操作演示 (二)Linux用户和权限 -- 操作演示 (三)Linux 小技巧快捷键 (四)Linux系统 ...
- 黑马程序员Java教程学习笔记(三)
学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(三) 面向对象:设计对象.注意事 ...
- 【黑马程序员】SpringBoot2学习笔记
1.SpringBoot的前菜 1.1 发展沿革 2013年,Pivotal团队开始研发SpringBoot. 2014年4月,发布全新开源的轻量级框架的第一个SpringBoot版本. 1.2 特点 ...
- 尚硅谷+黑马程序员MongoDB视频学习笔记(一)
本学习笔记是来源于学习B站上的尚硅谷和黑马的MongoDB教学视频而做的知识总结. 一.数据库(Database) 数据库是按照数据结构来组织.存在和管理数据的仓库.说白了,数据库就是存在数据的仓库. ...
- 黑马程序员机器学习Day2学习笔记
一.转换器和预估器 二. KNN算法 网格搜索和交叉验证 KNN案例:Facebook预测签到位置 朴素贝叶斯 联合概率.条件概率与相互独立 决策树 信息熵 回顾传统机器学习算法流程: 1.获取数据 ...
- 黑马程序员--某天学习笔记
变量 1.计算机中所有的数据都是以二进制的形式存储的,常见的还有十进制 八进制 十六进制. 2.变量的作用: 存储数据, 存储的对象不同,所占的存储空间也不同. 变量的声明: A)数据类型 变量名 ...
- 黑马程序员之HTML学习笔记:有关css和js针对不同浏览器兼容的问题
--------------------------------------------------- 2345王牌技术员联盟.2345王牌技术员联盟.期待与您交流!----------------- ...
- 【黑马程序员】Redis学习笔记001:Redis简介+五种基本数据类型
一.Redis入门简介及基本操作命令 问题的抛出 出现的问题: 海量用户 高并发 罪魁祸首--关系型数据库: 性能瓶颈:磁盘IO性能低下 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群 解决思路 ...
最新文章
- 【Linux学习笔记】 -- 基本Shell命令
- [生物] - 怎样理解细胞分裂次数是有限制的
- ASM(active shape models)算法介绍
- Bookshelf 2 简单DFS
- 【ArcGIS微课1000例】0015:ArcGIS如何创建/自定义快捷键?
- 学前教育试题库及答案_最新《学前教育学》专科-试题库及答案资料
- ai字体素材网站_综合网站大全,字体、设计、图片各种素材管够,资源丰富你懂得...
- 【原】如何实现IE6下块级元素的内容自动收缩
- js隐藏打开项目隐藏编辑 和删除按钮
- 无线扩展器怎么连接好友服务器失败怎么办,tplink无线扩展器怎么设置 tplink无线扩展器设置方法...
- 关于Docker的一些问题总结
- mysql数据库有dbo吗_拒绝了对对象 '表名' (数据库 '数据库名',架构 'dbo')的 SELECT 权限...
- seo文章伪原创技巧(你不知道的伪原创文章处理技巧)
- 框架设计之菜鸟漫漫江湖路系列 三:初入江湖
- 错误提示——0x0FE1E63C (ucrtbased.dll)处(位于 liaoabiao _2019.12.21.exe 中)引发的异常: 0xC0000005: 写入位置 0x005FA000
- 二维码的20种商业应用模式
- python实现RFM建模
- 人人都想买湖景房!湖景房优缺点你知道吗?
- python、idel、pycharm的安装使用
- 【设计模式与Android】抽象工厂模式——嵌合体克隆工厂