C语言知识点中的指针如何分析
发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,C语言知识点中的指针如何分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。指针是C的灵魂,没有学会指针就相当于没有学过C指针的定义:指针
千家信息网最后更新 2025年02月21日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安全错误
数据库的锁怎样保障安全
软件开发中最强的语言
应用软件开发行业代码表
sqlserver数据库同步
设计数据库的步骤分为哪六个极端
虎丘区一站式网络技术服务费
服务器安全软件 哪个好
西藏服务管理软件开发
永州快速软件开发费用
hana数据库使用说明
数据库导入和到处是什么意思
目前最大的同人小说数据库
网络安全为人民好句
数据库会议
DNS服务器解析管理工具
中国大学生网络安全在线答案
注册互联网科技公司要交税吗
一个完整的软件开发周期
易语言修改数据库表名
浙江省网络安全信息委
东莞软件开发驻厂公司有哪些
昆山市网络安全保卫支队
甲骨文的数据库
云南省软件开发
网络安全场景定义
网络安全活动文案
拓普互联网科技有限公司
数据库代码化是什么
欧盟网络安全治理规划
网络安全法草案 可断网
网络技术的最新发展2021