c++ 地址和指针

地址与指针

指针运算  

              指针变量存放的是地址,因此指针的运算实际上就是地址的运算

指针通常进行下列几种运算:赋值运算、取值运算、算术运算、相减运算、比较运算

 

* 和&运算

       *称为指针运算符。出现在数据定义语句中时,* 在数据类型与变量之间,是一个二元运算符,用来定义指针变量;出现指针变量表达式左边时,是一个一元运算符,表示访问指针所指对象的内容

 

数组首地址

一个一维数组:a[10] = {1,2,3,4,5,}

         首元素地址:&a[0] , 也可以用a表示,&a  *a

 

一个二维数组:int a[3][4] = {1,3,4,7,9,11,13,15,17,19,21,23};

  1.       首元素地址 a[0] 或者 &a[0][0],  

  2.       a此时代表首行地址,也就是a[0]这一行的首地址,

  3.       a + 2代表首行向后推两行,也就是a[2]这一行的首地址

  4.        *a 代表首元素地址,也就是a[0][0]的地址,

  5.       *a+2 代表首元素向后加两个元素的地址 ,也就是a[0][2]的地址

  6.        *(a+1)+2 代表首先首行地址向后推一行,到a[1] 得到s[1]的首行地址,再向列方向加两个元素的的地址,也就是a[1][2]的地址

  7.       **a代表首元素的值,因为是二维数组,*a代表是第一行,即首行的第一个地址,**a多加一个*则取其内容,**a = 1;

  8.       *(*a+9)*a代表首行第一个元素的地址,+9则向后推9个元素位置,即19这个元素的地址,外加*,取其地址里的内容,19

  9.       (a+1)[1]   ,a代表首行地址,a+1代表第二行即a[1]地址,此时a[1]为首行地址可以认为此时a[1]就是a[0],那么a[1]则就是下一行的地址),(a+1)[1]则就是a[2]的地址。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值