C语言指针运算
给一个指针加1表示要让指针指向下一个变量,也就是在地址值上加一个sizeof(指针所指的类型),例如:
int a[10];
int *p=a;
*(p+1)=a[1];
*(p+n)=====ac[n]
同理:这些指针运算可以对指针做:
1.给指针加减一个整数(减就是往前移一位)
2.递增递减(++/--)
3.两个指针相减(其实就是两个指针的差值/sizeof)
指针可以进行加减运算,也可以进行比较(比较他们在内存中的地址大小<,<=,==,>,>=,!= a[0]<a[5] 因为数组中单元的地址是递增排列的),但是不能乘除,指针的乘除没有意义
下面的代码为了看起来更加直观(关于指针加减运算):
#include <stdio.h> int main() { char ac[]={0,1,2,3,4,5,}; char *p=ac; char *p1=&ac[5]; printf("p =%p\n",p); //p =000000000062FE00 printf("p+1=%p\n",p+1); //p+1=000000000062FE01 printf("*(p+1)=%d\n",*(p+1)); //*(p+1)=1 printf("p1-p=%d\n",p1-p); //p1-p=5 指的是ac[5]和ac[0]之间能放几个这样类型的东西 int ai[]={0,1,2,3,4,}; int *q=ai; printf("q =%p\n",q); //q =000000000062FDE0 printf("q+1=%p\n",q+1); // q+1=000000000062FDE4 printf("*(q+1)=%d\n",*(q+1)); //*(q+1)=1 return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)