手机浏览器扫描二维码访问
但凡涉及到和内存相关的知识时,老爹都会使用ppt绘制图形来辅助讲解。
如果没有那些图的话,理解起来还是有一些困难。
「就然说到这里,就顺便提一下指针的自加和自减。
我们先回顾一下普通变量的自加和自减:
inta=10;
对于a等效于a=a1,a--等效于a=a-1。
那么对于指针变量
int*p=&a;
来说也是一样的
p等效于p=p1,p--等效于p=p-1。
而我们刚刚才说过,对指针做加减运算,实际上是按照指针指向的数据类型为单位上下移动,如果我们再配合*的话,也可以对数组进行赋值或者取值,你比如说:
intarr[5];
int*p=arr;
inti=sizeof(arr)sizeof(arr[0]);
while(i-->0)
{
scanf(%d,p);
}
注意这里面有个两个需要关注的地方,首先是老爹用sizeof来获取了一个数组占用内存的字节数,如果这个地方换成sizeof(p)话,只会得到p这个变量占用的内存字节数,这是指针和数组名的区别之一。
第二点,数组名是不可以做自加和自减操作的,不信你们可以把scanf函数中的p换成a,绝对会出错。
」
虽然老爹无比笃定,但本着不「事不目见耳闻而臆断其有无」的原则,我尝试了一下,果然是报错了。
「那为什么会这样呢?」
「这个嘛,老爹也没有看到过c语言是如何管理数组的,但是老爹猜测,arr是一个被const修饰的指针,何以见得?如果我们对变量p进行如下修改,就会发现p也不能执行自加自减操作了。
int*constp=arr;」
「const会将一个变量变成常量,如果修饰一个指针是不是指针也变成了常量?」
一直都沉默不语的小弦子出声问道。
「的确是这样,和普通变量一样,一个指针变量被const修饰后就变成了一个指针常量,那么我们就只能为其初始化一次,就不能再修改这个指针指向的地址了。
例如:
inta=0;
intb=1;
int*constp=&a;
p=&b;
在执行最后一行代码的时候肯定会出错,因为指针变量被const修饰,并且已经为其赋值为变量a的地址了,就不能再做修改,这个应该看得懂吧?」
(穿越+全能+马甲+团宠爽文)孤傲清高贵公子vs娱乐圈全能女王。盛婉做了一辈子的祸水妖妃,穿越后发觉转世竟然是个蠢笨的草包美人,被欺负的都自尽了。这怎么能忍!手撕绿茶,脚踢白莲,一切阻挡她的只有被销毁的下场。这个世界艺人不仅能赚钱还广受喜爱地位崇高?舞姬出身的盛贵妃表示很满意舞乐美食丹青诗书上才艺!只要你想,她无所不会!!在成为世界上最璀璨的那颗星星的路途上,无数裙下之臣被光芒吸引而来。被团宠的日子里,甚至不用她亲自下场动手,敌人就已经消失不见。人生如雪寂寞直到那个孤高清傲的男人出现,一眼洞悉她心底的残缺...
一个在现代被各种信息轰炸,拥有着现代思维的女子,胎穿到了异界。面对复杂多变的外部世界,她从一开始的小心谨慎,到后来逐渐放开,绽放出耀眼的光华,在这个世界留下一段独属于她自己的华丽篇章。这里没有逆天的宝物,没有如花的美男,只有一步一个成长的脚印和我们心中点点生活的印迹。------感谢小川同学帮我画的封面,这是根据赤...
...
本故事都是真人真事,绝对没有胡编乱造,真的!BY马上将军(眼神镇定ing)平生只修善缘,匆匆不是神仙。若要忙里偷闲,我有生命之泉如果有一天,你拥有了一个神奇的war3生命之泉,它能够让你跑的更快,跳的更高,变得更强,受伤后还能慢慢修复身体这时,你会怎么办?一双铁拳打尽不平事,一口豪气激励忠义坛。虎战群狼亦刚强,不是猛龙不过江!逆天?神话?妖孽?怪兽?奥特曼?从此以后,我是神话!成为人形怪兽的某个铁男张牙舞爪地对天大吼生命之泉,洗洗更健康都市神话群1914632满了都市神话群月水提供108528921不怕死的就来都市神话群老高提供79298299这里的人很纯很天真...
景言曾是景家最优秀的天才,十六岁突破武道九重天踏入先天之境,整个东临城无人能比,却莫名其妙在进入神风学院后境界跌落,成为笑柄。解开乾坤戒封印,重新崛起,最终制霸天元大陆,成为无数武者仰望的存在。...
当大灾变过去两百年,当进化者与魔法师主宰这个世界当天使恶魔虫族龙族死灵鬼怪机械生命体这曾经的一切再次出现,当残破的大地重新被黑暗和阴谋侵袭。当从小饱受虐待的孩童成为微笑着的死神降临在这个世上,世界,将会如何改变?...