指针的自加自减运算(++,--)

本文通过具体的C语言代码示例详细解释了如何使用指针操作数组,包括指针的基本运算、指针与数组的关系以及指针在数组中的应用技巧。通过对这些代码的逐行分析,读者可以更好地理解指针和数组的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//数组名代表数组的首地址,是指针常量,不能进行自加自减运算。
void main()
{
	char *a[2]={"one","two"},**p=a;
	printf("%s\t",(*p+1));//p是指向指针的指针,*p指向a[0]"one" *p+1指向第二个字母n
	printf("%s\t",*(p+1));//p+1指向a[1] 输出two
	printf("%c\t",**p);//“one”的第一个字母'o'
	printf("%s\t",*(p++)+1);//后++,先用后加,等效于*p+1;p++
	printf("%c\n",**p-1);//p指向“two”,**p=t,前一个字符是's'
	printf("%s\t",*(--p)+1);//先--,p指向"one",向前跳一个字符,输出"ne"
	printf("%s\t",*(++p)+1);//先++,p指向"two"向前跳一个字符,输出"wo"
	printf("%c\t",**p);//上一次p指向"two",输出't'
	printf("%c\t",**(p--));//等效于**p;p--;输出't',p指向one
	printf("%s\n",*p);//输出"one"
	system("pause");
}

输出结果显示:

C语言中指针运算指针整数、指针相互指针关系运算的介绍如下: 1. 指针运算 指针运算包括指针整数、指针相互指针关系运算等。指针整数是指将指针上或去一个整数,得到一个新的指针指针相互是指将两个指针、相或相后再上一个整数,得到一个新的指针指针关系运算是指比较两个指针的大小关系。 2. 指针整数 指针整数的结果是一个新的指针,新指针指向原指针所指向的地址上或去整数个字节的地址。例如,int* p = arr; p+1表示p指向的地址上4个字节,指向arr的地址。 3. 指针相互 指针相互是指将两个指针、相或相后再上一个整数,得到一个新的指针。例如,p1-p2表示p1和p2之间的距离,结果是一个ptrdiff_t类型的整数。 4. 指针关系运算 指针关系运算包括大于、小于、等于、不等于等运算符。两个指针之间的大小关系取决于它们所指向的地址的大小关系。如果两个指针指向同一个数组中的元素,那么它们之间的大小关系取决于它们所指向的元素的下标。 示例代码如下: ```c #include <stdio.h> int main() { int arr[10] = {0}; int *p = arr; char *pa = arr; int i = 0; for (i = 0; i < 10; i++) { *(p + i) = 1; // 每次访问1个整形 *(pa + i) = 1; // 每次访问1个字节 } int *p1 = arr; int *p2 = &arr[5]; printf("p1 < p2: %d\n", p1 < p2); // 输出:1 printf("p1 > p2: %d\n", p1 > p2); // 输出:0 printf("p2 - p1: %d\n", p2 - p1); // 输出:5 return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值