当前位置: 首页 > news >正文

C语言没有行指针、列指针、指针数组、数组指针、多级指针。。。等等这些概念

C语言没有行指针、列指针、指针数组、数组指针、多级指针。。。等等这些概念。

这一系列视频播放了以后,有一些朋友问行指针、列指针、指针数组、数组指针、多级指针这样的概念,在这里,我把一些基本概念捋一下,供大家参考:

1、首先,C语言的标准中,没有行指针、列指针、指针数组、数组指针、多级指针。。。等等这些概念,在C语言标准中没有这样的术语定义。举个例子,假设我们给定一个int a,那么a该怎么看待呢?第二行指针?还是第一列指针?

2、在C语言中,有一个核心的基本概念,就是Type,Type分为对象类型(Object Type)和函数类型(Function Type),任何指针类型都和int,float这些完全一样,也是一种对象类型(只不过指针是一种Derived Type),所以指针的本质上和任何类型都一样,学习指针的最重要一点,就是不要把指针类型特别来看待,指针这种类型和其他基本类型的性质是完全一样的。关于Type的内容,可以参看C语言中Type的概念和含义​。

3、在C语言中,数组也是一个Type(数组也是一种Derived Type),比如,对于int a这样一个声明语句,其核心的要点是要理解int是一种合法的Object Type,这个语句的意思是声明了一个对象a,其类型是int。有不少朋友困惑int是一个对象类型,在这里请大家自行做一个实验,sizeof(int)是可以正常运行的,但sizeof int不可以,这就充分证明了int是一个对象类型,因为C语言规定用在sizeof里面括号引导的只能是Type,关于数组的概念,请参看非数组和数组声明​。

4、此外,C语言的标准中,数组的核心理念就是只有一维数组,这个概念是学习指针最重要的核心之一。比如int a,意味着声明了一个对象b,其类型是int,其含义是2个元素组成的一个一维数组,每个数组的元素是int。只有这样去看待数组,才能去理解C语言的Value核心思想。

5、任何一个Type,都有其对应的一个指针类型,分别称之为Reference Type和Pointer Type,这里需要理解的点有如下几个:1)比如int,其对应的指针类型是int*,2)数组int,其对应的指针类型是int(*)。3)对于int*,其对应的指针类型是int**。所以没有多级指,当我们看到int**** p这个语句的时候,这说明声明了一个变量p,其类型是int****,这个指针对应的Reference Type是int***。建立这个概念至关重要,这个部分请参看指针声明​。

6、学习指针另一个重要的概念是lvalue,也就是左值,为了理解左值,需要先了解什么是表达式(请参看左值和表达式​),理解哪些表达式能够作为lvalue。

7、理解了lvalue之后,下面重要的是理解lvalue的取值规范,比如声明int a;当我们写一个语句a=1;的时候,这个a是lvalue,也是一个modifiable lvalue,所以可以放在等号左边,而当我们写a = a+1的时候,等号左边的a依然是一个lvalue,而等号右边的a也是一个lvalue,但是因为这个a现在是a+1这个更大表达式的子表达式,所以现在就需要取这个a表达式的值,这个过程是lvalue conversion。

8、关于数组名,比如int a,有很多人说a就是数组的首地址,这个说法是不准确的,a是一个变量名,是一个基础表达式,因此是一个lvalue,a这个表达式自然能也是有值,它的值是这个数组第一个元素的首地址,所以a的返回值是<第一个元素的首地址,int(*)>,这个取值的规范是和之前提到数组必须用一维视角去理解是呼应的。只有理解了这个,才能理解为什么数组作为实参传递,形参中数组第一维大小信息丢了的原因(事实上,这就是pass by value中这个value的含义,请参看理解参数传递​),这个部分内容还可以参看一维的视角看数组​。

lvalue和取值,先要了解非数组和数组对象不同的内存组织方式非数组对象内存组织​和数组对象内存组织​。

9、任何表达式(除了放到等号左边被赋值),都有返回值,C语言中 ,所有对象类型的表达式(用exp表示)都有三种潜在的返回值,分别是表达式对应内存的首地址(&exp,如果这个表达式是lvalue的话),sizeof(exp),和exp本身。value是一个核心概念,理解这个概念,才能更好的理解函数中pass by value的含义,这部分内容可以参看观察内存的视角​和观察数组的内存​。

10、int const是一种合法的对象类型,需要把int const当做一个整体来看待,所以int const也有对应的指针类型,即int const*,为了理解这个内容,可以参看网页链接​const的用法​以及typedef的用法​。

非常仓促的做了一些说明,有不尽之处,请多多见谅,并欢迎讨论。视频的整体逻辑并没有事先梳理,所以有一些混乱,也请见谅。dk.wblleb.Cn
kmy.wblleb.Cn
nt.wblleb.Cn
kia.wblleb.Cn
juy.wblleb.Cn
fml.wblleb.Cn
omz.wblleb.Cn
pdj.wblleb.Cn
cfg.wblleb.Cn
grs.wblleb.Cn
sih.wblleb.Cn
mcz.wblleb.Cn
hl.wblleb.Cn
lop.wblleb.Cn
fmw.wblleb.Cn
cv.wblleb.Cn
jqf.wblleb.Cn
ubn.wblleb.Cn
de.wblleb.Cn
kf.wblleb.Cn
wbf.wblleb.Cn
pu.wblleb.Cn
vp.wblleb.Cn
uci.wblleb.Cn
tdz.wblleb.Cn
yug.wblleb.Cn
pig.wblleb.Cn
yp.wblleb.Cn
cl.wblleb.Cn
hjf.wblleb.Cn
qq.wblleb.Cn
ux.wblleb.Cn
voo.wblleb.Cn
odt.wblleb.Cn
lsr.wblleb.Cn
ku.wblleb.Cn
uhq.wblleb.Cn
ou.wblleb.Cn
aa.wblleb.Cn
ks.wblleb.Cn
yaa.wblleb.Cn
emt.wblleb.Cn
jlq.wblleb.Cn
qgp.wblleb.Cn
yez.wblleb.Cn
ow.wblleb.Cn
qw.wblleb.Cn
ib.wblleb.Cn
ar.wblleb.Cn
xcu.wblleb.Cn
afb.wblleb.Cn
vt.wblleb.Cn
cw.wblleb.Cn
oik.wblleb.Cn
xoo.wblleb.Cn
tby.wblleb.Cn
pfk.wblleb.Cn
ez.wblleb.Cn
cy.wblleb.Cn
rmc.wblleb.Cn
owj.wblleb.Cn
rl.wblleb.Cn
vh.wblleb.Cn
vrr.wblleb.Cn
qge.wblleb.Cn
ec.wblleb.Cn
ng.wblleb.Cn
shh.wblleb.Cn
cgc.wblleb.Cn
wgg.wblleb.Cn
pq.wblleb.Cn
jps.wblleb.Cn
fa.wblleb.Cn
rt.wblleb.Cn
ev.wblleb.Cn
im.wblleb.Cn
fh.wblleb.Cn
me.wblleb.Cn
xht.wblleb.Cn
boz.wblleb.Cn
hk.wblleb.Cn
ked.wblleb.Cn
zrk.wblleb.Cn
gmk.wblleb.Cn
yso.wblleb.Cn
neb.wblleb.Cn
jxe.wblleb.Cn
ppv.wblleb.Cn
rjf.wblleb.Cn
nfm.wblleb.Cn
oqh.wblleb.Cn
ivz.wblleb.Cn
oe.wblleb.Cn
gla.wblleb.Cn
wdt.wblleb.Cn
vus.wblleb.Cn
ech.wblleb.Cn
igr.wblleb.Cn
cgt.wblleb.Cn
swt.wblleb.Cn
mo.wblleb.Cn
ble.wblleb.Cn
abf.wblleb.Cn
fr.wblleb.Cn
bfk.wblleb.Cn
ajw.wblleb.Cn
fmn.wblleb.Cn
qdh.wblleb.Cn
gm.wblleb.Cn
gk.wblleb.Cn
aji.wblleb.Cn
xiw.wblleb.Cn
ryg.wblleb.Cn
joc.wblleb.Cn
pua.wblleb.Cn
fk.wblleb.Cn
rlp.wblleb.Cn
kv.wblleb.Cn
hpg.wblleb.Cn
wg.wblleb.Cn
ra.wblleb.Cn
uw.wblleb.Cn
dz.wblleb.Cn
wiw.wblleb.Cn
lqv.wblleb.Cn
pko.wblleb.Cn
gub.wblleb.Cn
ey.wblleb.Cn
sxf.wblleb.Cn
ony.wblleb.Cn
yb.wblleb.Cn
tnf.wblleb.Cn
at.wblleb.Cn
hp.wblleb.Cn
lcv.wblleb.Cn
pyz.wblleb.Cn
blh.wblleb.Cn
fz.wblleb.Cn
cju.wblleb.Cn
esw.wblleb.Cn
xdj.wblleb.Cn
kce.wblleb.Cn
ju.wblleb.Cn
ne.wblleb.Cn
nw.wblleb.Cn
xov.wblleb.Cn
hpm.wblleb.Cn
kfp.wblleb.Cn
lvu.wblleb.Cn
cdv.wblleb.Cn
akk.wblleb.Cn
gki.wblleb.Cn
amd.wblleb.Cn
hoi.wblleb.Cn
zu.wblleb.Cn
edj.wblleb.Cn
tv.wblleb.Cn
fu.wblleb.Cn
bn.wblleb.Cn
to.wblleb.Cn
mt.wblleb.Cn
gan.wblleb.Cn
ni.wblleb.Cn
ckn.wblleb.Cn
lf.wblleb.Cn
qsm.wblleb.Cn
wj.wblleb.Cn
mpc.wblleb.Cn
rd.wblleb.Cn
wtc.wblleb.Cn
ax.wblleb.Cn
hom.wblleb.Cn
bgt.wblleb.Cn
rze.wblleb.Cn
vm.wblleb.Cn
mkx.wblleb.Cn
nvi.wblleb.Cn
mh.wblleb.Cn
xlz.wblleb.Cn
mxz.wblleb.Cn
md.wblleb.Cn
xij.wblleb.Cn
fax.wblleb.Cn
kz.wblleb.Cn
fcf.wblleb.Cn
hi.wblleb.Cn
sww.wblleb.Cn
xs.wblleb.Cn
cbn.wblleb.Cn
nvk.wblleb.Cn
ajf.wblleb.Cn
rf.wblleb.Cn
es.wblleb.Cn
uqq.wblleb.Cn
zkn.wblleb.Cn
dxf.wblleb.Cn
ywx.wblleb.Cn
pvq.wblleb.Cn
yf.wblleb.Cn
np.wblleb.Cn
pp.wblleb.Cn
jyo.wblleb.Cn
xpn.wblleb.Cn
axi.wblleb.Cn
uyq.wblleb.Cn
viy.wblleb.Cn
hrv.wblleb.Cn
kno.wblleb.Cn
jd.wblleb.Cn
yfd.wblleb.Cn
sv.wblleb.Cn
sm.wblleb.Cn
dxu.wblleb.Cn
opx.wblleb.Cn
iv.wblleb.Cn
txr.wblleb.Cn
gnf.wblleb.Cn
ats.wblleb.Cn
sd.wblleb.Cn
rpp.wblleb.Cn
ydw.wblleb.Cn
dcn.wblleb.Cn
iuc.wblleb.Cn
ub.wblleb.Cn
axe.wblleb.Cn
wtz.wblleb.Cn
rb.wblleb.Cn
su.wblleb.Cn
jcc.wblleb.Cn
det.wblleb.Cn
do.wblleb.Cn
zt.wblleb.Cn
ja.wblleb.Cn
yhb.wblleb.Cn
mcf.wblleb.Cn
xqs.wblleb.Cn
olg.wblleb.Cn
xbg.wblleb.Cn
puh.wblleb.Cn
hwf.wblleb.Cn
asz.wblleb.Cn
uhh.wblleb.Cn
ri.wblleb.Cn
kzr.wblleb.Cn
zd.wblleb.Cn
xpe.wblleb.Cn
or.wblleb.Cn
lg.wblleb.Cn
cd.wblleb.Cn
wn.wblleb.Cn
aop.wblleb.Cn
sr.wblleb.Cn
hbt.wblleb.Cn
ph.wblleb.Cn
ncc.wblleb.Cn
kg.wblleb.Cn
aeu.wblleb.Cn
gtv.wblleb.Cn
doj.wblleb.Cn
lc.wblleb.Cn
em.wblleb.Cn
tf.wblleb.Cn
lri.wblleb.Cn
kqk.wblleb.Cn
fpc.wblleb.Cn
iks.wblleb.Cn
hhd.wblleb.Cn
bvl.wblleb.Cn
mrz.wblleb.Cn
eb.wblleb.Cn
ycf.wblleb.Cn
lq.wblleb.Cn
mr.wblleb.Cn
ud.wblleb.Cn
bp.wblleb.Cn
va.wblleb.Cn
eiz.wblleb.Cn
juc.wblleb.Cn
gw.wblleb.Cn
og.wblleb.Cn
trs.wblleb.Cn
uuo.wblleb.Cn
qn.wblleb.Cn
rqm.wblleb.Cn
so.wblleb.Cn
av.wblleb.Cn
ox.wblleb.Cn
pbw.wblleb.Cn
hj.wblleb.Cn
gpb.wblleb.Cn
lp.wblleb.Cn
qzw.wblleb.Cn
fpq.wblleb.Cn
zja.wblleb.Cn
xt.wblleb.Cn
wm.wblleb.Cn
jfv.wblleb.Cn
lgi.wblleb.Cn
oj.wblleb.Cn
ugi.wblleb.Cn

http://www.jsqmd.com/news/964758/

相关文章:

  • 高中教资科三资料|学科知识与教学能力备考资料合集
  • 树莓派摄像头监控进阶玩法:用MJPG-streamer+FRP搭建私人直播流服务器
  • 论文过关全靠它?书匠策AI官网www.shujiangce.com 降重降AIGC实测,这波操作我服了!
  • 请做coser的主人9下载2026官方正版
  • 避坑指南:Halcon 18安装时这3个选项千万别乱选!新手常犯的配置错误与优化建议
  • 广东天鹅绒瓷砖源头厂家推荐及选择参考 - 品牌排行榜
  • TikTokDownload分布式批量下载系统:架构设计与高性能实现原理
  • XHS-Downloader终极指南:从小红书内容采集到批量下载的完整解决方案
  • 联想拯救者BIOS高级设置终极解锁指南:免费简单教程
  • Sunshine游戏串流性能调优完全指南:从入门到精通的技术手册
  • 2026年6月有实力的苏州阻燃PE袋公司怎么选择推荐榜,FRL-01/FRL-02/FRL-03型阻燃PE袋公司选择指南 - 海棠依旧大
  • Synopsys ICC Layout窗口高效操作手册:从图层管理、对象查询到隐藏的热键技巧
  • 中国芯片设计公司的成本创新之路:从价格战到技术壁垒
  • 2026年 常州高端婚纱租赁/高端礼服租赁/新娘跟妆推荐榜:精致嫁衣与专业跟妆口碑之选 - 企业推荐官【官方】
  • 别再死记硬背了!用“快递分拣”的故事,5分钟搞懂Hadoop MapReduce核心流程
  • 基于Android+LLM大模型的人工智能历史模拟交互系统源码+论文
  • 8类工地安全防护用品检测数据集(安全帽/反光背心/施工人员等)| 5200张YOLO安全生产监测数据集 适用于智慧工地、工业安防与目标检测研究
  • 你的AI编程导师:如何用快马平台智能解答Java基础概念与生成示例
  • 2025-2026年荟茗挂件电话查询:使用前请核实产品材质与定制流程 - 品牌推荐
  • Unlock-Music:如何在浏览器中一键解锁加密音乐文件?终极免费方案揭秘![特殊字符]
  • 普宁找工作用什么软件|本地求职者手机找工作的完整渠道指南 - 品牌观察
  • FauxPilot架构解析:构建企业级本地AI代码助手的技术实现
  • 深度解析移动端免Root系统提取工具:Payload-Dumper-Android技术架构与实现原理
  • 数理统计课蒙特卡洛实践包:带注释Python脚本、多组模拟数据与可视化结果文件
  • BAV99与TVS管辨析:嵌入式IO保护电路设计中的常见误区与正确选型
  • 3分钟制作专业电子词典:AutoMdxBuilder零基础完全指南
  • 7天学会plc加机器视觉关于运动控制部份,配套视频在bib
  • 5分钟免费搞定专业条码!Libre Barcode开源字体终极指南
  • 别再手动调参了!用Dynamic Head模块一键提升YOLOv5/v7目标检测精度(附代码)
  • 【编号311】汉代丝绸之路交通数据