请问下面的程序怎么分析

请问下面的程序怎么分析,第1张

void sum(int a)

{

a[0]=a[1];//将指针后一个元素复制到指针处;

}

main()

{

int aa[10]=(1,2,3,4,5,6,7,8,9,10),i;

for(i=2;i>=0;i--)

sum(&aa[i]);//执行3次。如下

//sum(&aa[2]);功能是aa[2]=aa[3];aa[2]的值为4。

//sum(&aa[1]);功能是aa[1]=aa[2];aa[1]的值为4。

//sum(&aa[0]);功能是aa[0]=aa[1];aa[0]的值为4。

printf("%d\n",aa[0]);//输出4

}

源程序:

#include "stdioh"

main()

{ int i=5;

char c[6]="abcd";

do

{ c[i]=c[i-1];

}

while(--i>0);

puts(c);

}

运行步骤:

1:把c[4]的值\0赋给c[5],i自减1,变成4,4>0,继续进行循环;

2:把c[3]的值d赋给c[4],i自减1,变成3,3>0,继续进行循环;

3:把c[2]的值c赋给c[3],i自减1,变成2,2>0,继续进行循环;

4:把c[1]的值b赋给c[2],i自减1,变成1,1>0,继续进行循环;

5:把c[0]的值a赋给c[1],i自减1,变成0,0!>0,跳出循环;

6:整体输出一位数组c的值:aabcd;

程序运行结束

首先更正一下

你在程序中看到的这个地址其实少了两个代码,完整地址应该是DB21DBX42

解析说明

DB21DBX42可以先分解成两大部分

第一部分DB21-----DB的意思就是告诉你这个地址指向了数据块,这个数据块的编号是21

第二部分DBX42---DB意思同上,相当于一个前缀,X42就相当于M42、I42、Q42,意思就是这是一个布尔量数据

DB块寻址的标准格式就是“DB+数据块编号+英文符号点+DB+数据类型+数据在块中的编号“

举几个例子,

某编号为100的数据块中的某个布尔型数据,DB100DBX00

某编号为100的数据块中的某个字节型数据,DB100DBB10

某编号为100的数据块中的某个字型数据,DB100DBW20

某编号为100的数据块中的某个双字型数据,DB100DBD30

当然,字型数据可能是BCD,也可能是INT,双字型可能是READ,也可能是DINT,看你怎么定义了

以上就是关于请问下面的程序怎么分析全部的内容,包括:请问下面的程序怎么分析、列表分析下面程序的运行步骤和中间结果,给出最后的输出结果,、西门子程序DB21.X4.2怎样理解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9824503.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存