a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 53|回复: 0

[程序员] 2012年软件水平考试程序员辅导笔记之C语言数组名a和&a小结

[复制链接]
发表于 2012-8-2 08:51:15 | 显示全部楼层 |阅读模式
 int  a[5] = {1,2,3,4,5};
) L% d# P6 r' }9 K6 p2 ^
1 |0 C) n$ t$ t  数组和指针是C说话的精髓也是它的可贵。出格是对于数组名a以及&a,良多同窗一向都搞不清嚣张。今天就说说我自己的理解,但愿能对巨匠有所辅佐。# i: Y5 K1 T  y* S
9 j% w, y( R7 T3 k
  a暗示的是a[0]的肇端地址,而&a暗示的整个数组的肇端地址。只是刚好他们暗示的地址相等,但并不能说他们两个就完全相等。就像浙江省的省政府在杭州,而杭州市的市政府也在杭州,但不能嗣魅浙江省政府就等于杭州市政府。
  Z: r$ y% h9 n' A2 X9 p0 }: r, }! U
; e, ]) @! V) A  为了便利理解,我们来对数组进走运算。假设a的地址是0x00ffff00,那么a+1和&a+1分袂是若干好多。
- @0 u! T" x! D" _) Z3 K* n, y& J" N5 h. U
  因为a暗示的是a[0]的首地址,所以a+1加的就是一个a[0]元素的巨细,即一个int的巨细4,所以a+1为0x00ffff04
$ t4 R* P5 O% B! r0 X) |
; X/ W+ K- e/ O! a0 j1 z, s% P  &a代表的是整个数组的首地址,所以&a+1加的就是整个数组的巨细,即4*5=20,所以&a+1为0x00ffff14
1 q, H# {3 a' L
( R, D9 p$ y# p5 X  t* ^, L  其实他们美全是两回事,只不外刚好数值上相等而已。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-9 07:03 , Processed in 0.207039 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表