自增自减运算

#include <iostream>
using namespace std;

int main(void)
{
	int i = 10;
	cout << i << "  " << i++ <<"  "<< i++ << endl;
	printf("i,i++,i++ = %d,%d,%d\n",i,i++,i++);
	printf("%d %d\n",i++,i++);
	//printf("%d,%d\n",i++,++i);
	char str[] = "chinese people";
	char *p = &str[0];
	printf("p = %s\n",p);
	printf("p=%p\n",p);
	printf("*p = %c\n",*p);
	++*p++;
	printf("p = %s\n",p);
	printf("p=%p\n",p);
	printf("*p = %c\n",*p);

	int a[3] = {1,2,3};
	int *pt = a;
	printf("pt = %p\n",pt);
	pt++;
	printf("pt = %p\n",pt);
	return 0;
}

输出结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

知道第7行代码的输出结果为什么那样吗?比较第7、8、9行代码的输出会发现,自增自减运算具有右结合性。

至于第7行和第8行不一样,好好想一下,为什么?我就不说了,要自己多思考。

变量的自增自减是改变变量的值,指针的自增自减是改变指针指向的地址。

++*p++,将p加1,同时*p所指单元加1。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值