C 语言程序仅可以解释执行。
解释程序是将源程序(如BASIC)作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。编译程序是把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机执行这个目标程序,得到计算结果。
相对于编译性语言,其优点是可移植性好,只要有解释器环境,程序就可以在不同的 *** 作系统上运行。
缺点是代码需要有专门的解释器,在程序运行时,除要给用户程序本身分配内存空间外,解释器也占用系统资源,所以其运行速度较慢。另外,也很难达到像C、C++那样 *** 作系统底层 *** 作的目的。
解释型语言常用于,一是对运行速度要求不高(如一些网页脚本等)的场合,二是对跨平台( *** 作系统的兼容性)有要求的场合。
扩展资料
1、Python和Java语言,专门有一个解释器能够直接执行Python程序,每个语句都是执行的时候才翻译。
2、 Python代码在运行前,会先编译成中间代码,每个 .py 文件将被换转成pyc 文件,pyc 就是一种字节码文件,它是与平台无关的中间代码。不管放在 Windows 还是 Linux 平台都可以执行,运行时将由虚拟机逐行把字节码翻译成目标代码。
参考资料来源:百度百科-解释执行
这是一个C程序,用于反转给定字符串"morning"中的字符。以下是代码的解析:
包含stdio.h库,该库包含用于输入和输出 *** 作的函数。
定义main函数。
声明并初始化一个包含字符串"morning"的字符数组s。
声明两个字符指针p1和p2以及一个字符变量c。
将p1和p2都指向字符串s的第一个字符。
将p2指针移动到字符串的末尾(就在空字符之前)。
使用while循环反转字符串中的字符。在每次迭代中,交换p1和p2指向的位置处的字符,然后将p1向前移动,将p2向后移动。
在p1和p2指针相互交叉之前,继续反转字符。
使用printf函数打印反转后的字符串。
关闭main函数。
执行程序后,输出将是"gninrom",这是原始字符串"morning"的反转。
c=*p1*p1++=*p2--*p2=c} 这行代码是在反转字符串时交换两个字符的部分。
让我们逐步详细解释:
c=*p1:将p1指针指向的字符值赋给字符变量c。此时,c存储了p1指向的字符。
*p1++=*p2--:首先,将p2指针指向的字符赋给p1指向的字符。然后,递增p1指针(即将p1向右移动一个字符位置),递减p2指针(即将p2向左移动一个字符位置)。这里使用的是后置递增和递减 *** 作,意味着先完成赋值 *** 作,然后再递增/递减指针。
*p2=c:将字符变量c(即原始p1指向的字符)赋给p2指向的字符。这样,p1和p2指向的字符就完成了交换。
在while循环中,这个过程会不断重复,直到p1和p2相互交叉(即p2>p1不再成立)。这样,字符串中的字符就会被反转。
供参考,望笑纳!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)