C语言程序的运行顺序

C语言程序的运行顺序,第1张

1、这个涉及到函数的调用约定

运行结果跟编译器有一定的关系,不同的编译器参数的入栈的顺序不同

一般的编译器是从右到左

如fun(a,b)这个函数调用,是先计算参数b,入栈,再计算参数a,入栈

2、printf("%d

%d",

a++,++a);

//先计算++a,先自增,a的值变为2,将2入栈

再来计算a++,将a的值2入栈,再使a自增,a的值变为3

printf("

%d\n",a);

//a的值已经变为3了

3、printf(%d

%d",

++aa++);//先计算a++,将a的值1入栈,再使a自增,a的值变为2,再来计算++a,先自增,a的值为3,将3入栈,输出3

1

printf("

%d\n",a);

//输出3

4、三种调用约定:

__stdcall调用约定。两者实质上是一致的,即函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。

C调用约定(即用__cdecl关键字说明)和__stdcall调用约定有所不同,虽然参数传送方面是一样的,但对于传送参数的内存栈却是由调用者来维护的(也正因为如此,实现可变参数的函数只能使用该调用约定),另外,在函数名修饰约定方面也有所不同。

__fastcall调用约定是“人”如其名,它的主要特点就是快,因为它是通过寄存器来传送参数的(实际上,它用CX和EDX传送前两个双字或更小的参数,剩下的参数仍旧自右向左压栈传送,被调用的函数在返回前清理传送参数的内存栈),在函数名修饰约定方面,它和前两者均不同。

顺序结构,顾名思义就是按顺序执行的语句,选择结构,就是在执行过程中需要进行选择判断!

一般选择结构有if--else 结构,switch -- case 结构。

顺序结构

#include <stdio>

void main()

{

printf("%s","hello");

printf("%s"," world!\n")

return;

} //顺序输出 hello word! 这就是顺序结构

选择结构

#include <stdio>

void main()

{

int i ;

scanf("%d",&i);

if(i >=0)

{

printf("%s","hello\n");

} // 如果 输入的i 大于等于0 则 输出hello 否则输出下面else中的world!

else

{

printf("%s","world!\n");

}

}

在一台最常见的计算机上,程序从某种外部设备,通常是硬盘,被加载到计算机之内。 如果是我们现在使用的普通电脑结构,那么程序就被加载入内存。 指令串行顺序执行,直到一条跳转或转移指令被执行,或者一个中断出现。所有这些指令都会改变指令寄存器的内容。基于这种体系的计算机,如果没有程序的支持,将无法工作。一个计算机程序是一系列指令的集合。程序里的指令都是基于机器语言;程序通常首先用一种计算机程序设计语言编写,然后用编译程序或者解释执行程序翻译成机器语言。 有时,也可以用汇编语言编程,汇编语言实质就是表示机器语言的一组记号-在这种情况下,用于翻译的程序叫做汇编程序。

也就是说,当你双击某个程序时:

1、首先由CPU发出指令,从硬盘读取数据,然后调入内存中执行。

2、程序控制指令:也称转移指令。

执行程序时,有时机器执行到某条指令时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果进行转移,从而改变程序原来执行的顺序。

这种转移指令称为条件转移指令。除各种条件转移指令外,还有无条件转移指令、转子程序指令、返回主程序指令、中断返回指令等。 转移指令的转移地址一般采用直接寻址和相对寻址方式来确定。

每次从待序记录中选出排序码最小的记录,顺序放在已排好的记录序的后面,直到全部排完。

直接选择排序

void selectSort(SortObject pvector)

{

int i,j,k;

RecordNode temp;

for(i=0;i<pvector->n-1;i++)

{

k=i;

for(j=i+1;j<pvector->n-1;j++)

{

if(pvector->record[j]key>pvector->record[k]key)

k=j;

if(k!=i){

temp=pvector->record[k];

pvector->record[k]=pvector->record[i];

pvector->record[i]=temp;

}

}

}

以上就是关于C语言程序的运行顺序全部的内容,包括:C语言程序的运行顺序、顺序结构和选择结构的C语言程序简单点的就行、电脑运行程序的顺序是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9279800.html

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

发表评论

登录后才能评论

评论列表(0条)

保存