i++问题
例题,以下代码的输出结果是什么?
#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.
随机推荐
- DNS分别在什么情况下使用UDP和TCP
DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议. 如果用wiresha ...
- 父目录的权限对子目录有没有影响?[Linux]
问题源头: 登录到服务器(实验室分的一个服务器账号)上,想在当前目录下创建一个文件,但提示“文件系统只读”,无法创建文件.通过ls -l 查看当前用户在当前目录的权限,发现具有rwx权限.所以在想会不 ...
- C# App.config文件配置数据的读写
添加程序集引用 System.configuration.dll 和命名空间 using System.Configuration; 读: ConfigurationManager.AppSetti ...
- Gulp入门教程(转载)
本人转载自: Gulp入门教程
- 设置irb和ri
设置irb和ri 输入ruby -v查看是否能够显示ruby版本 现在可以 配置irb了. irb是交互式Ruby 的命令行工具,即输入一句就立即执行并给出结果. 默认的irb不够强大,现在给它配置一 ...
- jquery easyui DataGrid 数据表格 属性
用法 1. <table id="tt"></table> 1. $('#tt').datagrid({ 2. url:'datagrid_d ...
- Frag(匹配跟踪)
‘碎片’(Frag)跟踪是目标跟踪里的一种通过‘部分‘匹配识别的方法,其目标模板是通过图像多个碎片和块来描述.块是任意的,不基于目标模型的(与传统的基于’部分‘的方法不一样,比如人体的四肢与躯干的跟踪 ...
- UnicodeDecodeError: 'utf8' codec can't decode byte 0xce in position 47: invalid continuation byte
- TCP/IP学习-链路层
链路层: 路径MTU: 网络层: ifconfig netstat IP首部 网络字节序:大端字节序
- QTP
QTP支持功能测试和回归测试的自动化. 支持录制功能,可以对脚本设置检查点,也可以进行参数化.可以在一个ACTION中调用另外一个ACTION action可以调用外部脚本.可以复制已有的ACTION ...