C语言知识点中的指针如何分析
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,C语言知识点中的指针如何分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。指针是C的灵魂,没有学会指针就相当于没有学过C指针的定义:指针
千家信息网最后更新 2024年09月22日C语言知识点中的指针如何分析
C语言知识点中的指针如何分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
指针是C的灵魂,没有学会指针就相当于没有学过C
指针的定义:指针就是内存单元的编号(编号>=0)
指针变量是存放内存单元编号的变量(存放地址的变量)
指针 & 指针变量是不同的
e.g:普通变量a的地址是1000H,可以称a的指针是1000H 但是绝对不能说a的指针变量是1000H
指针是一个操作受限的非负整数:比如2个地址相乘是没有意的 故不能做乘法操作,所以说指针是受限的
指针为什么重要?
(1).快速的传递数据,减少内存的使用
(2).可以使函数返回一个以上的值
(3).可以直接访问物理硬件
(4).可以方便的处理字符串
(5).是理解面向对象语言中"引用"功能的基础
(6).可以表示一些复杂的数据结构
指针的分类:
1.基本类型指针(重点):int *i//变量名:i int *表示i变量存放的是int类型变量的地址
e.g:
int *i; int a = 10; i = a//error:i & a 虽然都是变量 但是i 是指针变量 a是普通变量 类型不同不能赋值 i = &a;//True &是取地址符号 &a表示取变量a的地址;把a的地址赋值给指针变量i printf("*i = %d\n",*i)//输出结果:*i = 3 i获取到a的地址后*i 表示指向了a *i = a;
经典的例子加深对指针的理解:互换2个数字(之前使用的是普通变量,现在使用指针&函数)
#includevoid swap(int p,int q){ int t; t = p; p = q; q = t; return;}//swap 不能完成互换,只是互换了形参的值 主函数中的实参值并未互换 void swap1(int *p,int *q){ int *t; t = p; p = q; q = t;}//swap1 不能完成 a b的值互换,只是互换指针变量 void swap2(int *p,int *q){ int t; t = *p;//*p =a ,*q=b *p = *q; *q = t;}//swap2 互换成功 int main(void){ int a,b; a = 5; b = 9; swap(a,b); printf("a = %d,b = %d\n",a,b); swap1(&a,&b); printf("a = %d,b = %d\n",a,b); swap2(&a,&b); printf("a = %d,b = %d\n",a,b); return 0;}/* 输出结果: a = 5,b = 9 a = 5,b = 9 a = 9,b = 5 总结:思考:printf 为什么不能放在被调函数中? 题目的要求是:互换a b的值 而非被调函数的值互换 测试结果: 1.swap只是被调函数的形参值互换了 主函数中的实盘并没有互换 2.swap1 只是互换 a b地址的存储位置 并没有互换 a b地址中的值 **3.swap2 为什么会成功?原因很简单哦 swap2的功能是把 a b地址中的值互换了 简单说:a b是被划分出来的2个静态地址 5,9是存放在地址中的值 swap2功能是把 2个地址中的 5 9互换 一旦地址中的值达到互换即 a b的值完成了互换***/
看完上述内容,你们掌握C语言知识点中的指针如何分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
指针
变量
地址
函数
只是
语言
普通
内存
功能
类型
结果
知识
知识点
分析
不同
成功
内容
单元
原因
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
2021网络安全大会
海康软件开发待遇
什么游戏的服务器最大
南昌软件开发公司怎么样
多串口服务器 COS
大型数据库基础百度百科
网络安全培训班开场白
网络安全 小学
北京亚红网络技术
企业网络安全隐患原因
同花顺代理服务器超时
江苏综合软件开发技巧
新路服务器
网络安全知识答题答案20题
数据库有序表
关于数据库的毕业论文
现代化信息技术和网络技术
国家三级计算机网络技术
配置mysql服务器时
查询没有选修数据库的学生信息
计算机网络技术高职教科书
dhcp 安装服务器
中国星网网络技术研究院
五华区信息化软件开发价格实惠
十堰公司软件开发以客为尊
本科有网络技术专业吗
西游梦幻五开服务器
数据库1305错误
数据库登录界面能单独创建吗
网络技术展览