C语言指针去变量地址,人人学编程 C语言入门 学指针,先学如何获取变量地址!...

22dde370c9d2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Hi,欢迎来到指针的世界,也许您早已听过它的大名,指针被称为是C语言的精华所在。真正理解和掌握指针是征服C语言的关键所在!

在众多的计算机语言中,试问:还有哪门语言可以有C语言这样在作用、速度和安全上平衡的如此优异的呢?而指针则在其中扮演了重要的角色!或许有人会说:正是因为指针才使C程序变得非常不安全!而我则想说的是:这就要求C程序员要有更高的驾驭C语言的能力,而这点也恰好反映出C的设计哲学!那就是:“C充分相信程序员!”所以:请不要辜负她!

OK,在学习指针之前,我们先弄清楚一个概念:

地址

何谓地址?在内存(注意,我们这里提到的内存并不是人们常说的计算机的物理内存,而是虚拟的逻辑内存空间)当中,简单点说:地址就是可以唯一标识某一点的一个编号,即一个数字!我们都见过尺子,我们统一以毫米为单位,一把长1000毫米的尺子,其范围区间为0~999,而我们可以准确的找到35毫米、256毫米处的位置。同样的道理,内存也如此,也是像尺子一样线性排布,只不过这个范围略大,在我们最广泛使用的32位操作系统下,是从0~4,294,967,295之间,而地址就是这之中的的一个编号而已,习惯上,在计算机里地址我们常常用其对应的十六进制数来表示,比如0x12ff7c这样。在我们的C程序中,每一个定义的变量,在内存中都占有一个内存单元,比如int类型占四个字节,char类型占一个字节等等,每个字节都在0~4,294,967,295之间都有一个对应的编号,C语言允许在程序中使用变量的地址,并可以通过地址运算符"&"得到变量的地址。

#include

intmain()

{

inti;

inta[10]={1,2,3,4,5,6,7,8,9,0};

charb[10]={'c','l','a','n','g','u','a','g','e'};

for(i=0;i<10;i++)

{

printf("int Address:0x%x,Value:%d\n",&a[i],a[i]);

}

printf("\n");

for(i=0;i<10;i++)

{

printf("char Address:0x%x,Value :%c\n",&b[i],b[i]);

}

return0;

}

在32位linux系统下运行参考结果:

intAddress:0xbfb949c4,Value:1

intAddress:0xbfb949c8,Value:2

intAddress:0xbfb949cc,Value:3

intAddress:0xbfb949d0,Value:4

intAddress:0xbfb949d4,Value:5

intAddress:0xbfb949d8,Value:6

intAddress:0xbfb949dc,Value:7

intAddress:0xbfb949e0,Value:8

intAddress:0xbfb949e4,Value:9

intAddress:0xbfb949e8,Value:0

charAddress:0xbfb949f2,Value :c

charAddress:0xbfb949f3,Value :l

charAddress:0xbfb949f4,Value :a

charAddress:0xbfb949f5,Value :n

charAddress:0xbfb949f6,Value :g

charAddress:0xbfb949f7,Value :u

charAddress:0xbfb949f8,Value :a

charAddress:0xbfb949f9,Value :g

charAddress:0xbfb949fa,Value :e

charAddress:0xbfb949fb,Value :

请亲自上机运行测试,并观察分析结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值