指针的偏移和数组与指针的结合使用

本文探讨了指针的定义、赋值、本质和偏移,特别是指针如何在数组中进行单个及多个偏移操作。强调数组名在不同场景下表现的不同特性,如在sizeof运算中返回数组的总大小。最后总结了数组与指针的关系,指出指针操作虽可能高效但可能降低代码可维护性。
摘要由CSDN通过智能技术生成

一.指针的定义
类型名 *指针变量名;
类型决定指针的大小,可用sizeof运算符去计算大小。
二.指针的赋值
1.使用地址进行赋值,数据类型与指针类型需一致

int iNum = 0x64;
int *ptr;
ptr = &iNum ;

2.利用指针之间相互赋值,指针类型必须一致

int *ptr1,*ptr2;
*ptr1 = *ptr2;

三.指针的本质
指针的本质就是指向某个内存地址的标记,指针交换其实就是交换相互指向的内存地址。
四.指针的偏移
1.指针的单个偏移

int array[10]={0,1,2,3,4,5,6,7,8,9};
int *ptr;
ptr=&array[0];//指针指向数组的第一数据
printf("%d\n",*ptr);  //输出值为0,指向array[0]
printf("%d\n",*(++ptr);//输出值为1,指向array[1],使用++ptr为了ptr加1

以上面代码为例,指针的偏移量为int型的大小,可以让指针的加减去读取数组的数据。
2.指针的多个偏移
(1)数组长度的偏移

int temp[5];
char *p = &temp;
char *q = temp;

在这里,p和q的值是一样的,含义却不一样,前者是指向数组的指针,而后者是指向该数组中下标为0的元素的指针。因此p&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值