c_5:c数组

一维数组

int a[10];
int *c;
c=&a[0]  //&a[0]是指向数组第一个元素的指针
array[i]=*(array+i)
&array[i]=array+i=array[0]+i

--------------------------------------
--------------------------------------
int array[10];
int *ap=array+2;  // ap指向array[2]

ap //&array[2]
*ap //*(array+2)
ap[0]=*(ap+0)=*ap //c语言的下标和简接访问一样
ap+6 //ap[2+6]=ap[8]
*ap+6 //array[2]+6
ap[6]  //*(ap+6)
ap[-1]  //上一个元素

指针和数组

int i[]={100,200,300,400,500};
int *pi=i;  // pi指向i[0]=100的地址
*pi++   //*和++优先级相同,自右向左----->*pi++=*(pi++)----->*pi=100,输出100,然后pi指向下一个地址
*++pi  //---->*(++pi)---->pi移到下一个单元----->输出300
++ *pi //---->300+1

二维数组

[] <script type="math/tex" id="MathJax-Element-2">*</script>等价

int i[7]={0,1,2,3,4,5,6}
int *ptr=i;

则:*(i+2)=i[2]=*(ptr+2)=ptr[2]
//二维数组
int j[2][3]={0,1,2,3,4,5}
=>
j[1][2]=*(*(j+1)+2)
j+1=*(j+1)=j[1]=>下一个一维数组的首地址(j和j+1都是指向包含10个元素的数组的指针)
*(j+1)+5=>一维数组的第5个元素

指向数组的指针

int (*p)[10]  //避免使用

指针数组

char *parr[4]={"Department","of","Information","Managment"}

//操作符 []和*
**parr=*parr[]=parr[][]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值