首页

文章

c语言指针怎么理解,什么时候会用到指针,要注意哪些方面

发布网友 发布时间:2022-03-01 08:23

我来回答

8个回答

热心网友 时间:2022-03-01 09:53

cpu自己有运算器和寄存器,通过总线与存储器件相连,在执行运算时,
需要将数据冲存储器件上面将参与运算的数据读入,运算完成后再送出到
存储区。那么cpu读入时需要访问存储器件的某个单元,需要指定这个单元
的编号,我们管这个编号叫存储地址。
比如:int a[10],*p; p=&a[3];a就是一个拥有10个整型数据的数据区
的首地址,变量p是存放地址的,称为指针型变量,赋值时需要取相应存储
区的地址,p=&a[3];就是取数组a的第4个单元的地址给p,那么p就拿到了
这个单元的地址,*p=5;就相当于a[3]=5;的操作,p++;后p指针就指向a[4]。
在操作大块数据时,一般记录首地址(数组指针),然后根据首地址再加
上偏移量来访问整个数据,在你程序中写a[3]时,计算机就会取a数组对应
的首地址再加3个整型偏移量来访问相应数据。用指针p访问a数组的好处
是,不用每次计算a加多少偏移访问数据,而是使p指向某数据后可以p++
或p--来访问前一个或后一个数据。
注意:
1.指针存放地址用,不是存储实际数据的,它是用来找数的,在
程序中要注意这点,往往出问题的是,指针还没有赋值就用来操作,或
用指针来存放数据,如:int *p=15,s[10]={ 0,15,{0} };的
p指针赋值有问题,这样计算机会把15当成地址存放到p变量中,以后用
*p访问得到的数据就不是你想要的数据了。(应该类似:p=s+1; *p=15;)
2.指针访问数据区一般需要程序来控制不要越界,比如定义了10个单元
的数据区,你不能让指针超出这10个单元的范围,否则得到的数据就是
不靠谱的。
3.指针的定义只是开设了可以访问数据区或数组的变量,数据区和数组
需要你的程序另行开设,然后把数据区或数组的某个单元的地址赋值给
指针变量,不要认定义了能访问数组的指针,数组就定义好了。
4.指针存放的地址最好不要用来与其他地址比较,除非你能确认地址比
较的结果肯定是你想要的。
5.举例来说,int a[10],*p=a;中a和p都是指针(地址),但a和p是不同的
在编译器眼中,a是一个数据区的首地址,是一个标记,你程序中使用a
时,编译器会知道用数据区的首地址来替换操作,而p是你自己程序开
设的变量,可以在程序中操作比如p++; p=a;等,但作为记号的a就不能
在程序中操作了,如a++; a=p;就是错的了。
6.子程序如果参数是指针型的,这个参数由子程序开设的指针型临时
变量存储,这个临时变量可以进行操作,但不会返回给调用者的指针型
变量。
如:int a[10],*p; int f(int *s) { s++; } main() { p=a; f(p); }
s再怎么加减都不会影响p。

热心网友 时间:2022-03-01 11:11

c语言指针就是内存地址。既然是内存地址当然可以用它来访问内存。所以当你要对内存进行读、写或分配、释放的时候会用到。甚至可以用函数指针来访问函数。要注意的东西一时说不全,这个需要自己实践总结。

热心网友 时间:2022-03-01 12:45

指针是按一定规律操作大量的变量时用的,你想象如果你有一个数组,你要操作数组中一个特定元素,但是这个元素的下标是个变量,那你就离指针不远了,实际上指针名就是一个真正的数组名,要想纯熟得理解和运用指针,最好看看数据结构的书

热心网友 时间:2022-03-01 14:37

个人理解
指针就是地址,不过这个地址是有类型的,比如一个int型的指针,int指的是该指针指向的那块内存存放的内容是一个int型的数据。
或者也可以把指针的类型简单的看作是这个指针所能管到的内存的大小,如一个int类型的指针可以管4个字节,char类型的可以管1个字节。

热心网友 时间:2022-03-01 16:45

就是数据的地址。 通过指针,可以向这个地址写入数据,或者读取数据。p是地址, *p就是地址的内容。追问那哪些地方会用到指针呢

追答变量或函数都是有地址的。所有用到地址的就有指针。数据指针,数组指针,动态分配的空间地址指针,函数指针,结构指针, 参数传递等等,可以说所有的地方都用到了指针。

热心网友 时间:2022-03-01 19:09

说实话吧,c语言的精髓就是指针,你的这个问题,没有谁能帮你解决,去看看书吧

推荐 《c和指针》讲解的挺详细,自学的难度是有点大,这是大一的课程,你呢?是、、、

热心网友 时间:2022-03-01 21:51

很多地方都可以用到指针,打个比方。就像我们去公共浴室洗澡,买票要给个有编号的钥匙,看到编号我们就知道要去找这个编号的衣柜,把衣物放在里面。洗完澡我们要拿着钥匙去找柜子拿衣服。
钥匙上保存了编号---------根据编号找到衣柜---------拿出衣柜里的衣服
指针-------------------------------地址-------------------------数据
要注意的是指针要用完释放,不然容易弄成野指针。还有指针指向的内容。

热心网友 时间:2022-03-02 00:49

指针可以理解为一张 写有变量或函数入口或结构体具体存放位置地址 的纸条,如果把内存比作一栋大楼,那么纸条上写得就是第几层楼第几号室。使用指针的意思就是自己根据纸条上地址,找到对应的房间,并对房间里面的东西取出来做出你需要的操作。
用到指针的情况很多,最常见的是被调用函数返回多个参数时会用到;制作各种链表会用到;访问结构体成员会用到;手动动态分配使用内存会用到;一些特定的结构体变量类型会用到(如 FILE)为提高程序执行效率也会特意使用指针(包含很多种情况,不再赘述);等等等等
要注意的地方也很多,很难说完,常见的就以下几种(我能想到的):
1.指针变量和普通变量概念使用方式相混淆
2.指针变量的赋值(初始化,传递地址)方式有误
3.指针变量的类型与所指元素的类型不一致
4.指针移动不恰当
5.指针在使用过程中发生了不必要的导致错误的改变
6.多重的指针指向指针,导致形成难以理清的逻辑关系
还有很多其他情况,在不同的使用环境下,指针会产生一些特定的要注意的问题;归根结底是C语言指针太灵活了,能做得事非常多,代价就是产生问题的原因也是很灵活的,一一列举几乎是不可能的。希望对你有所帮助
谷歌浏览器怎么设置成中文_谷歌浏览器设置中文语言 【谷歌浏览器技巧】谷歌浏览器如何更改语言? 史上最全ETF全解 证券ETF是深市的吗 怎样把莲藕肉丸子做的好吃? 高三语文小说赏析小说形象分析与答题技巧 人物形象题答题技巧 借助什么分析小说的人物形象 脖子旁边疼是什么原因 在群里不是好友怎么把群里人建另一个群 蛇床子的药理作用 炒蛇床子和生蛇床子有什么区别 为什么把床头垫高点 为什么床头高点儿 为什么要给新生儿抬高床头 人脸识别打卡考勤机找哪家? 背后搞你的人什么心态 很皮的搞笑撩人句子高情商的撩人句子(82句) 恶搞爱情短信 床头挂什么财运最旺最好 床上放什么东西辟邪 道家床头挂什么画最好最旺 床头贴什么最好最旺道家 建设工程竣工后,是否必须取得《规划验收许可证》? 环评竣工验收 手机几年没用了开不了机怎么办 红烧啤酒鸡的家常做法大全怎么做好 双男主泰剧新剧推荐 2019泰剧《爱情理论》小受暗恋花心直男好友 液体卫生巾和普通卫生巾的区别是什么?液体卫生巾的优点 可水洗粘尘垫哪家好 电脑12g够用吗? 宝宝双侧肺炎病变严重吗 什么是洁净气体灭火器 2024年实用父亲节礼物推荐有哪些?(2300字选购指南) 40包速溶咖啡比对 作文请以“这样挺好”为题,写一篇记叙文或议论文,不少于800字。要求... 如何写好作文我就是这么好 惊魂未定什么意思?有什么典故? 安阳火车站到新师院北门的公交车有哪些? 安阳市公交车26从火车站发车多长时间到终点站 太仓汽车站去太仓乐遥浏河公墓坐几路公交 请问廉江市哪里有奥克斯手机专业维修店,急!! 梅赛德斯奔驰E350敞篷版的整体简介及其性能如何 员工出差前需要做什么准备工作? 用(祝愿自己生日快乐)写首藏头诗,希望有才华的人帮帮忙,谢谢了_百度... 请问做爱前吃什么药可以延长做爱时间? 我每天锻炼,然后吃什么,能延长我房事时间?现在两分钟,双方都苦恼。_百 ... 做爱前吃什么最能滋补身体 吃什么能让房事时间长些? 手机内存怎么不见了怎么回事。苹果6S 苹果6s什么也没下,就出现内存不足是怎么回事? C语言中的指针到底是怎么回事啊 有什么用 新的苹果6s手机没什么东西,内存一天天变小 不足怎么办 苹果6s出现内存不足解决方法 为什么我的iphone6s64G手机存储空间少很多 苹果6s显示内存不足是怎么回事? vivos9下载的软件不在桌面上? 我的苹果6s手机最近都没下过任何app,昨晚发现内存突然少了几个G? iphone6的内存怎么越来越少 vivo手机的微信分身不在桌面显示 找不到了怎么办?分身大师那边也登 为什么我的iphone6splus内存自动变少 vivo手机下载了微信但是手机桌面不显示图标说要去设置里确认但是找不到怎么办?_问一问 我的苹果6s手机64g内存没怎么用都没了,怎么回事? 在vivo手机桌面里上滑就出现应用软件,怎么关闭页面 为什么我的苹果手机内存自己变少了 vivo手机桌面显示不出来怎么办 苹果s6手机内存怎么越来越少 IPhone6S内存越来越越小,到底该怎么解决 苹果6splus的内存怎么越来越小 苹果手机6s冲电越来越少怎么回事 青海省西宁市 有扬州特产吗? 野生乌龟吃什么食物 河里抓的乌龟吃什么 河里钓回来的乌龟吃什么? 乌龟吃什么食物谁知道 生活在河里的乌龟吃什么 野乌龟吃什么食物 乌龟吃什么食物呢 水里的乌龟吃什么? 河里的龟吃什么 要喂乌龟吃什么,是河里钓上来的大乌龟~~ oppor9怎么关闭夜间模式 oppor9plus怎么切换夜间和白天模式 oppo r9s怎么设置自动关机,和设置夜间模式? oppor9 tm手机怎样开启夜间模式? 温网和法网有什么区别? 小螃蟹煮多久能吃 苹果手机升级系统 不用wifi 只用流量可以升级吗? 牡蛎(肉)怎么吃最好
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com