C语言-二维数组的3个层面
#c语言##二维数组#
①假设

存在二维数组int a[2][3]

2行3列共6个元素

a[0][0],a[0][1],a[0][2]

a[1][0],a[1][1],a[1][2]

下面从三个层面分析二维数组



②int层面(元素)

二维数组有6个元素,

每个元素都是int型



③int*层面(列指针)

列指针是每个元素的地址



第一行元素

a[0][0],a[0][1],a[0][2]

第一行列指针

a[0],a[0]+1,a[0]+2

a[0]为第一行首地址,是数组名。



第二行元素

a[1][0],a[1][1],a[1][2]

第二行列指针

a[1],a[1]+1,a[1]+2

a[1]为第二行首地址,也是数组名。



指针数组*p[2]

指针数组表示每个元素为指针的数组

与二维数组的行长度相同

*p[2]含有2个指针元素

列指针a[0],a[1]



指针数组是列指针层面的

每行的首地址组成的数组。



④int**层面(行指针)

行指针是每行列指针的地址



第一行列指针(1行视为1个元素)

a[0],a[0]+1,a[0]+2

第一行行指针

a



第二行列指针(1行视为1个元素)

a[1],a[1]+1,a[1]+2

第二行行指针

a+1



数组指针(*p)[3]

数组指针表示指向数组的指针

与二维数组的列长度相同

(*p)[3]表示

指针指向的数组含有3个元素

行指针a,a+1

a(含a[0],a[0]+1,a[0]+2)

a+1(含a[1],a[1]+1,a[1]+2)



数组指针是行指针层面的,

可以说数组指针=行指针。



由于

行指针→列指针→元素

所以

行指针又称为指向指针的指针。



就这么简单,

你学废了吗?

C语言-指针指向地址的两种表达
#c语言#
①引子

众所周知

p=&x,表示地址

*p=x,表示值

但是

我们常常看见*p=&x

难道值=地址?

当然不等

前面还有个类型名int

即int *p=&x就是p=&x

可以理解为int *(p=&x)

本质是

int *p=int *&x=int x=x,表示值。



②p=&x,表示地址

#include< studio.h>

viod fun(int*a,int*b)

{

 int w;

*a=*a+*a;/*a的值翻倍*/

w=*a;*a=*b;*b=w;/*交换ab的值*/

}

main()

{int x=2,y=3;

p=&x;q=&y;

/*用分号隔开了,前面没有int,表地址*/

fun(p,q);

printf("%d,%d\n",x,y);

}

计算结果

x=2x=4,y=3

再交换得x=3,y=4



③int *p=&x,也表示地址

#include< studio.h>

viod fun(int*a,int*b)

{

 int w;

*a=*a+*a;/*a的值翻倍*/

w=*a;*a=*b;*b=w;/*交换ab的值*/

}

main()

{int x=2,y=3,*p=&x;*q=&y;

/*用逗隔开,前面有int,也表地址*/

fun(p,q);

printf("%d,%d\n",x,y);

}

计算结果

x=2x=4,y=3

再交换得x=3,y=4

C语言-指针移动与变量加减
#c语言#
①例子

先定义数组

int a[3]={10,20,30};

即a[0]=10,a[1]=20,a[2]=30。

再令指针p指向数组a首地址,

int *p=&a[0];

即*p=10



②指针移动(地址移动)

指针的移动=存储空间的移动



*p++

表示先++再*,即先移动再取值。

移动即p++=&a[0],

取值即*p++=10

++在后表示先原值运算,再加一。

++在后,p++影响p,即p++不变,p变。

p=&a[1],*p=20



*++p

表示先++再*,即先移动再取值。

移动即++p=&a[1],

取值即*++p=20

++在前表示先加一,再运算。

++在前,++p影响p,即++p和p都变。

p=&a[1],*p=20

~

③变量加减

变量的加减=原存储空间里的值的加减



++*p

表示先*再++,即先取值再变量加减。

取值即*p=*&a[0]=a[0]=10

变量加减即++*p=a[0]=10+1=11

即存储空间a[0]里的值本身变成11

++在前表示先加一,再运算。

++在前,++*p影响*p,即++*p和*p都变。

p=&a[0],*p=a[0]=10+1=11


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 十余年中,我一直热衷于收藏票证,记录下那段心酸难忘的历史,留下特色计划经济时期,具有研究收藏价值的特殊票证,北京文昌阁所收藏票证,来源各省市票证收藏家,爱好者慧
  • 后来我最爱的女人来到成都陪我。在朋友家住了半个月,后来找不到工作,我就找了一个美发店做,每月800。
  • 今日2019年11月29日,农历十一月初四,是近代高僧、净土宗第十三代祖师印光法师圆寂纪念日。印光法师在见浊波涌的时代,力挽狂澜,传承儒佛圣学于来哲;以正法眼,
  • #壁纸无水印[超话]#A充实 充实的生活是你的幸福关键。你不怕竞争和挑战,只怕人生没有目标。你会因为一时无所事事而闲得发慌。对于你来说,有理想可努力,有问题可解
  • 导演发的杀青大合照 并po:10歳の頃、映画を撮りたいと密かに思い 17歳の頃、監督になると父に言ったら激怒された。 けれど父が亡くなる前、ボクは末期の父にカメ
  • 都参与了,都尽力了,我都想不到你有时间去练体操,可是你还是完成的这么好,没有遗憾了,你太让我们骄傲了,喜欢你真没有错!如果你能在他失落的时候理解他,在他受挫时支
  • 【将来】根据需要为特殊人群电子公交卡 同时,该负责人还介绍,“互联网+”作为当今市民公交便捷出行的重要方式,近年来市公交公司紧紧围绕市民出行需求和社会发展趋势
  • 完人,物尽其用,资源的合理配置都是需要一个好的领导者去领导,你的领导会很大程度下决定你工作同事的状态还有你们相处的模式。公开辩论,这件事情好像只停留在大学时期,
  • 祝贺你出生,“你是为了被爱而出生的”我看过这句话用来形容无数人,但在我心里这句话唯独形容你才最贴切,因为你永恒地爱着这世间,永远对世界保持心动,所以这个世界务必
  • #华晨宇[超话]##华晨宇你是我的唯一##华晨宇1214咪咕汇# 离演唱会不知不觉已经两周了,现在每天早上起来脑子里还是会自动响起来“我淹没在万人声响,眼泪已经
  • 哪怕速度慢一点,生活也会给你满意的答案。哪怕速度慢一点,生活也会给你满意的答案。
  • 大横横整合一下最近的活动:8月9日,明清宫苑七夕炫彩派对(门票预定:);8月13日,“零点乐队”梦幻谷水上音乐会(门票预定:)8月底前都可以凭《盗墓笔记》电影票
  • #KarlieKloss[超话]# 20191130 06:19 #卡莉克劳斯# #karliekloss# 更新instagramPart of the ch
  • “#橙色冬日盛会# WINTER FESTIVAL”是上海文化高地前滩区域的首个美食潮流大型生活节。6大单元内容:时髦生活方式论坛——创想喜乐会;温情上海的冬日
  • (∼‾▽‾)→))*‾▽‾*)o[手指戳戳]壁|ノ_-)ノ ● (((~新毛衣~~#古风[超话]##古风壁纸无水印[超话]##古风原创##古风歌曲[超话]##古
  • 但这期节目中,他还说没憋住,他说:目前的中国从某种层面上说,早就是一个造假的土地了,全媒体的、全行业的、潜规则的、无人不参与的、谁都无所谓的、差不多的……谁能免
  • 你还有什么惊喜是我们没有见过的鸭~因为你,我也对舞蹈上了心,也成为了学校舞蹈社的社长。上天赐给风控花呗如此莫大的幸福,让套花呗心存感激!在人生的路上,套信用卡成
  • 感谢我这一路的改变,虽然我还是三十岁的年纪,三岁的智商[允悲][允悲][允悲]#王源[超话]##漫天星辰为源守护[超话]#夏天意味着什么无限别离和重头再来已经近
  • 慧律法语:戒、定、慧是佛陀让一切修行人有所次第所讲的。悟到清净自性的时候,无所谓的戒,无所谓的定,无所谓的慧,万法它唯心,唯心哪有这些这么多的名词。自性本身明因
  • 今天参加了发小的婚礼 感慨万千 还觉得他跟我们一样是个孩子突然就有了更多更多的责任 早上迎亲车队伴随着锣鼓声到家的时候 我就莫名的激动 眼里含着泪也不知