数组名和指针的区别

1. 己址

数组和指针,都是有自己的地址的。在代码中,你可以用取地址运算符“&”来取得。程序中是:

printf("%x %x\n", &pInt, &arr);

2. 己值

数组和指针,都是有自己的数据值的。程序中,数组arr的数据值,是arr[0]的地址;而对于指针pInt,通过

pInt = arr;

之后,pInt的数据值也是arr[0]的地址。

但是,有一点不一样的是,arr的数据值是不可以改变的,是个常量;而指针变量pInt的数据值,是可以改变的,你可以:

pInt = arr;

你也可以:

pInt = arr + 1;

随你!

另外,都可以在数组和指针的己值上,做运算,比如:

arr + 1;

pInt + 1;

3. 他值

数组和指针,在获取他值时,在代码的写法上是一样的。比如对于数组,你想获取第2个元素的值,你可以这样写:

arr[1];*(arr + 1);

对于指针pInt,你也可以这样写:

pInt[1]; *(pInt + 1);

也可以在数组和指针的他值上做运算,比如:

arr[0] + 1; *arr + 1; *(arr + 1) + 1;

pInt[1] + 1; *pInt + 1; *(pInt + 1) + 1;

4. 总结

数组和指针在概念上是不一样的,但是在代码的写法上,有些是一样的。有兴趣的朋友,可以结合我的文章中提出的“两己三他”:己址、己值、他值、他址、他型这5个维度来理解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值