printf的参数赋值的顺序

#include <stdio.h>

int main()
{
	int b=3;
	int arr[]={6,7,8,9,10};
	int *ptr = arr;
	printf("%d\n",*ptr);
	*(ptr++) += 123;
	printf("%d,%d\n",*ptr,*(++ptr));

	//printf的参数赋值顺序是从右向左
	int i=5;
	printf("%d,%d\n",i++,i);//5,5
	i=5;
	printf("%d,%d\n",++i,i);//6,5
	i=5;
	printf("%d,%d\n",i,i++);//5,5
	i=5;
	printf("%d,%d\n",i,++i);//6,6
}

评价:

(1)、自增符号在变量前面,则变量先自增再参与其他运算;自增符号在变量后面,则变量先参与其他运算再自增

(2)、printf的参数赋值从右往左。

posted @ 2012-02-26 19:08  javaadu  阅读(147)  评论(0)    收藏  举报
编辑推荐:
· 一个 java 空指针异常的解决过程
· 揭开 SQL Server 和 PostgreSQL 填充因子的神秘面纱
· 没有调度器的协程不是好协程,零基础深入浅出 C++20 协程
· 别做抢活的导演:代码中的抽象层次原则
· 从 Redis 客户端超时到 .NET 线程池挑战
阅读排行:
· 会Vibe Coding的同事:我一个人干掉整个技术部!
· dotnetty 内存泄漏的BUG修复了
· 20250709 - GMX V1 攻击事件: 重入漏洞导致的总体仓位价值操纵
· Apipost 的AI功能真的还不错啊!建议后端开发和测试人员了解
· 面试官:如何实现大模型连续对话?
点击右上角即可分享
微信分享提示