C语言| 指针变量的自增运算

【自增&自减】

指针变量可以进行自增运算和自减运算。 p = p+1; 可以写成 p++ 或者 ++p

自增就是指针变量往后移,自减就是指针变量向前移。

C语言| 数组-CSDN博客

就单纯的自增而言,p++和++p是一样的。

只有变量,才可以自增&自减!

【数组VS指针】

指针访问速度更快!比数组快!

原因:指针可以直接访问,而数组每次访问,都需要重新计算首地址+下标。

【相同类型的指针可以比大小】

两个相同类型的指针,才可以使用关系运算符,比大小!

【程序代码1】

#include <stdio.h>

int main(void)

{

int a\[\] = {123, 456, 666, 888, 999};

int *p = a;

printf("*(p++) = %d, *(++p) = %d\n", *(p++), *(++p));

return 0;

}

【程序代码2】

C语言| 数组

使用指针变量,输出数组元素。

【数组VS指针】

指针访问速度更快!比数组快!

原因如下:

1 只使用数组,引用数组元素时,需要借助数组下标形式进行引用。

这样,每次都需要重新计算数组a表示的首地址,再加上下标,才能找到该元素。

2 数组+指针结合的程序

使用指针p,每次指针都是直接指向所需元素,不需要计算。

举例:

1 只使用数组的程序

数组下标从0开始计算。

当需要数组中第二个元素 a1,先计算数组a 表示的首地址,再+1 ,找到元素 a1。

当需要数组元素a2,先计算数组a 表示的首地址,再+2,找到元素 a2。

2 数组+指针结合的程序

int * p = NULL; //把指针初始化

p = a; //假设数组已经初始化

当第一次执行++p ,此时指针p 直接指向元素a1。

当第二次执行++p, 此时指针p 直接指向元素a2。

#include <stdio.h>

int main(void)

{

int a\[\] = {11, 22, 33, 44, 55};

int *p = NULL; //先把指针变量初始化

for(p=a; p<(a+5); ++p)

{

printf("%d\n", *p);

}

return 0;

}

相关推荐
福兮说10 分钟前
JS 正则的六个坑:带 g 的 test() 一真一假、空匹配死循环、replace 里的 $
开发语言·前端·javascript·正则表达式
码艺-Alimjan14 分钟前
Web 网站打包桌面应用的另一种方式,超级简单(C# exe 33Kb)
开发语言·前端·c#
沫璃染墨15 分钟前
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》
linux·运维·服务器·开发语言·c++·系统架构·线程
垆边人似月.37 分钟前
华为机考题:矩阵中的最长递增路径
c语言·c++
yexianglunbai39 分钟前
中间件(Middleware)详解:概念、作用与实战
java·开发语言·中间件
叶总没有会41 分钟前
OpenFeign
java·开发语言·springcloud·openfeign
geovindu1 小时前
rust: tree
开发语言·后端·rust
程序员老陆1 小时前
C++ 继承方式:公有、保护、私有,到底在控制什么
开发语言·c++
AI备忘录1 小时前
(二十二)华为华三锐捷迈普思科 802.1X 端口认证配置命令(网络准入五厂商对照)
运维·服务器·开发语言·网络·安全·华为
free-elcmacom1 小时前
手撕 memcpy 和 memmove:从字节级拷贝到内存重叠的终极较量
c语言·开发语言·青少年编程·visual studio code·visual studio