求详细解释一下下面这个程序的运行过程

#include<stdio.h>
struct Key
{
char *keyword;
int keyno;
};
void main()
{
struct Key kd[]={{"are",123},{"your",456},{"my",789}};
struct Key *p;
int a;
char *pchr;
p=kd;
a=(++p)->keyno;
pchr=p->keyword++;
printf("p->\"%s\",a=%d\n",pchr,a);
a=++p->keyno;
pchr=p++->keyword;
printf("p->\"%s\",a=%d\n",pchr,a);
a=p->keyno++;
pchr=p->keyword;
printf("p->\"%s\",a=%d\n",pchr,a);
}
输出结果是
p->"your",a=456
p->"our",a=457
p->"my",a=789

第1个回答  2016-06-13
楼主你好这个程序和一般的中断程序的分析是一样的。前面初始化完定时器和中断后,就开始进入while循环。当定时器的计数为零时就进入中断函数中执行,执行完以后又跳回中断处继续运行而中断函数中具体实现的功能就是让num这个变量每过一秒自增1,直到68秒后再复位回0.while中就是通过判断num这个变量来控制交通灯。。你应该是想知道while循环中执行到哪会突然产生中断,跳到去中断函数。。具体的中断点应该是不定的,但肯定是在while循环中。因为定时器减一是一个硬件过程,和你程序下的运行过程是独立开的,所以while中的每一句都有可能成为断点。这也随之产生误差,不过误差应该是在um量级里面,所以不影响实际的运用。追问

一脸懵逼我们说的是一个程序吗?

第2个回答  2016-06-13
人同意让他一人一追问

???

C语言程序设计求详解求运行过程
第一次调用后,输出: 7,第二次调用后,输出: 15 所以,总的输出是:7,15

求讲解一下安卓运行一个APP的详细过程
1、用户打开一个app。2、系统分配程序预设要求的最低内存,并创建activity进程。3、进程创建完毕后,app程序被转移至虚拟机中。4、app程序到达虚拟机后运行第一条启动指令,一般为显示启动logo。5、启动后依据用户的操作来完成程序。6、用户关闭app。7、系统将程序移除虚拟机,并结束activity进程。8、释放...

单片机中一个程序的运行过程
因而一开机即可执行指令。下面我们将举个实例来说明指令的执行过程:开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。例如执行指令:MOV A,#0E0H,其机器码为“74H...

运行下列程序,显示的结果是( )。 求详细过程讲解。
3~4, 4~4,每种情况累加给s的值就是4,3,2,1。 当i=1时,第二层循环走一遍1~4,我们就在1~4前画一笔“正”,当i=2时,走一遍1~4,走一遍2~4,各画一笔正。。。 一直到i=5时,别忘了四种情况再各画一笔。最后

下面程序的运行结果是哪一项: #include <stdio.h> main() {char a...
但是作为字符串,还会有一个\/0,也就是字符串结束符,这个结束符的下标为7,就是说a[7]就是结束符。过程是这样的:第一次循环:i=1;j=0;a[i] 为o,a[j]为m,m小于o,所以把i的值赋给j,此时j=1 第二次循环:i=2;j=1 a[i]为r a[j]为o o小于r,所以把i的值赋给j,此时j=...

下面程序运行后输出结果是?求详细解答过程
首先,你这x根本就没有声明,如果说的话,运行后程序报错。如果,是你的笔误,把x写成了k。那么,首先,数组a只定义了前3个元素的值,后面没有定义的初始化为0.其次,for循环中,只加了a[1]元素和a[2]元素,即 x =a[1]+a[1]+a[2]+a[2] = 2+2+3+3 = 10 所以,最后的结果是10...

二级C语言题求助!1!!! 求详细解题过程
然后将其对映值自增一(c[s[i]]++),并且,数组c[5]所有值均初始为0(c[5]={0})。因此,这道程序的运行结果就成了统计数组s[12]中各个数字出现的个数了。照理应该选C。但是,题中第二个循环条件有些奇异,若照原题,运行结果是有逻辑错误的,应该会输出12个数。我觉得那里可能打印错误...

C语言程序设计求详解过程
首先,你要先明白,这个程序有两部分组成:函数fun(..)和主函数main();main()调用fun(..)函数实现算法运算。首先介绍主函数main():主要负责打印输出结果,for循环由k控制,连着调用fun(..)函数两次,并打印。fun(..)函数:实现算法运算。第一次调用:x == 1(参数a的值), z == 4(在z++...

计算机程序运行原理
计算机程序运行原理:计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去。直至遇到停止指令。程序与数据一样存取,...

...s=s+i next i print s 这个程序怎么解,求详细过程
意思是s值是0,i的值从1到10递增,每递增一次就进行一次加法:1、s = 0+1 s=1 2、s = 1+2 s=3 3、s = 3+3 s=6 for i = 1 to 10 step 3是指i分别=1,4,7,10 利用s=s+i 即当i=1时,s=0+1=1;i=4,s=1+4=5;i=7,s=5+7=12;i=10,s=10+12=22。s=4 i=9...

相似回答