在VC下的几个例子:
成都创新互联公司服务项目包括含山网站建设、含山网站制作、含山网页制作以及含山网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,含山网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到含山省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!int i=3;
int j=4,k;
k = ++i * j++;
//k = i*j++此时i值为4
//k = i * j;//此时j值为4;
//k = 16;
//j = 5;
printf("%d %d %d\n",i, j, k);
输出结果为 4 5 16
解释: ++i为滞前自增,先将i值加1在用其参加运算,故第一步i的值为4;
j++为滞后自增,待表达式所有的运算符全部运行完在将j加1
于是k=16;j=5;
i = 3;
j = (i++) + (i++) + (i++);
上述可等于下列语句:
j = i + i + i;
i++;
i++;
i++;
最后 i=6;j=9;
i = 3;
j = (++i) + (++i) + (++i);
过程: j = i + (++i) + (++i);此时i值为4
j = i + i + (++i);此时i的值为5,此事从左开始的运算符分别为 + + (++)前两个的运算符优先级相同,所以先运算第一个(左边的)
j = 10 + (++i);
j =10 + 6 = 16;
结果:j = 16; i = 6;
i = 3;
j = (++i) + (++i) * (++i);
上述语句的运算过程可以等价如下:
j = i + (++i)*(++i);//此时i的值为4
j = i + i * (++i);//此时i的值为5
j = i + i * i;//此时i的值为6
j = 6 + 6 * 6 = 42;
i = 3;
printf("%d %d \n", i ,(i++)+(i++)+(i++));
printf("i = %d\n",i);
输出结果为:
3 9
i = 6
C语言中函数的参数从右到左依次被调用入栈,所以第一次输出的结果为 3 6
等到printf()函数调用完成后执行i++操作,连续执行三次,得到的结果为6
总结:
在一个表达式中,出现对同一变量的多次赋值运算,对于不同的c编译系统,将遵循不同的标准
由于上述的事实,所以编程者极力避免上述运算
C语言系统,对于函数调用的多个参数,其处理顺序是:自右向左
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。