函数执行顺序 打印顺序
来源:互联网 发布:java 协议开发 编辑:程序博客网 时间:2024/06/05 19:10
下列程序的运行结果是( )
#include <stdio.h>
main()
{
struct
t
{
int
x; int
*y;
}*p;
int
a[]={1,2};
int
b[]={3,4};
struct
t c[2]={5,a,6,b};
p=c;
printf("%d,%d",*(p->y),++(*p).x);
}
正确答案:1 6
解析:
函数执行时形参的执行顺序是从左到右,此题中先执行++(*p).x,再执行 *(p->y)
再考虑运算符优先级:优先级从高到低依次是() . 前++,因此先执行 (*p).x,得到c[0].x,值为5,前++之后得到6,
也就是说前++操作是对变量x执行的,不影响p指针的指向,则*(p->y)的结果为*a,即a[0],最终结果是1。
形参执行顺序是从右到左,但是printf的打印顺序还是从左到右,因此结果为1,6
阅读全文
0 0
- 函数执行顺序 打印顺序
- javascript 函数执行顺序
- 顺序执行函数
- 函数执行顺序
- unity函数执行顺序
- javascript函数执行顺序
- 递归函数执行顺序
- unity-----函数执行顺序
- 构造函数执行顺序
- 递归函数执行顺序
- 执行函数的顺序
- 函数参数执行顺序
- MFC函数执行顺序
- Tapestry的函数执行顺序
- oracle分析函数执行顺序
- 函数参数执行的顺序
- 构造函数的执行顺序
- jQuery的$函数执行顺序
- 公共数据库介绍~ProPublica
- sklearn特征提取方法学习
- 数学建模处理数据
- Java分页查询(真分页)
- TV Encoder MS7024
- 函数执行顺序 打印顺序
- 《Python数据分析与挖掘实战》笔记(五):数据建模
- C++面向对象思想(1):类的设计
- vuejs实现数据驱动视图原理
- Java-字符串反转
- 刷清橙OJ--A1051.DNA序列
- shell find命令用法
- 学Java入门篇:Java类的基本内容
- 软件架构师书籍