例题,以下代码的输出结果是什么?
#include <stdio.h>
int main()
{
int arr[] = {,,,,};
int *ptr = arr;
*(ptr++) += ;
printf("%d,%d\n",*ptr,*(++ptr));
return ;
}
解析:
首先明确C中的printf函数是从右到左压栈的。
*(ptr++) += 123; 等同于 *ptr =*ptr + 123; ptr++;(就算ptr++有括号也是要后算的)。此时ptr指向数组第二个元素7.
printf("%d,%d\n",*ptr,*(++ptr));从右到左运算,第一个是 (++ptr),得到*ptr=8,此时ptr指向第三个元素8,第二个*ptr值也为8.
随机推荐
-
http协议学习系列
深入理解HTTP协议(转) http://www.blogjava.net/zjusuyong/articles/304788.html http协议学习系列 1. 基础概念篇 1.1 介绍 H ...
-
js简介、基本语法、类型转换、变量、运算符、分支语句、循环语句、函数、函数调用
javascript是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 三个常用对话框 alert("")警告对话框,弹出一个警告对话框 <script> al ...
-
java的nio之:java的nio系列教程之channel的概念
一:java的nio的channel Java NIO的通道类似流,但又有些不同: ==>既可以从通道中读取数据,又可以写数据到通道.但流的读写通常是单向的. ==>通道可以异步地读写. ...
-
post from传值
//请求 string url = "http://localhost:50186/GetPostPage.aspx"; HttpWeb ...
-
控制流之while
while语句只要在一个条件为真的情况下,while语句允许你重复执行一块语句.while语句是所谓 循环 语句的一个例子.while语句有一个可选的else从句.使用while语句~~~~~~~~~ ...
-
mysql 分组取最新的一条记录(整条记录)
方法:mysql取分组后最新的一条记录,下面两种方法.一种是先筛选 出最大和最新的时间,在连表查询.一种是先排序,然后在次分组查询(默认第一条),就是最新的一条数据了 #select * from ...
-
mac pro 如何让终端默认运行python3.X而不是2.7
Mac版本的Python默认是2.7,安装高版本后需要修改为你安装的版本. 1,首先打开终端 open ~/.bash_profile 打开配置文件 2. 写入python的外部环境变量(本人的版本是 ...
-
【总结】java regex 正则表达式 提取数字和去除数字,过滤数字,提取价格
@Test public void test33() { String phoneString = "哈哈,13888889999"; // 提取数字 Pattern patter ...
-
ActiveMQ队列特性:删除不活动的队列(Delete Inactive Destinations)
方法一 通过 ActiveMQ Web 控制台删除. 方法二 通过 Java 代码删除. ActiveMQConnection.destroyDestination(ActiveMQDestinati ...
-
201709011工作日记--ART与Dalvik&;&;静态类与非静态类
1.ART 与 Dalvik 的优缺点对比 什么是Dalvik:Dalvik是Google公司自己设计用于Android平台的Java虚拟机.dex格式是专为Dalvik应用设计的一种压缩格.Dalv ...