C语言中“语句”和“指令”有什么区别?

在看《C Primer Plus》,里面有一句话:“......句末的分号指明这一行是C语言的一个语句或指令......”
这里说的“语句”和“指令”有什么区别呀?
(C语言初学者一只,诚心求教)

区别一:构成不一样

1、C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。

2、指令可以使编译器按不同的条件编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的,尤其是针对于跨平台程序移植的时候。

区别二:实现功能不一样

1、C程序语言可以实现多种程序结构, 即顺序结构、分支(选择)结构、循环结构。

2、指令可以实现源代码的部分编译功能,可以根据表达式的值或者某个特定的宏来确定编译条件,以决定编译哪些代码,不编译哪些。

扩展资料

C语言表达式语句

表达式语句由表达式加上分号“;”组成。

其一般形式为:表达式;执行表达式语句就是计算表达式的值和执行副作用。

例如: x=y+z;a=520;赋值语句;

y+z;加法运算语句,但计算结果不能保留,无实际意义;

i++; 自增1语句,i值增1。

i++; 是先运算i后再加1。

++i; 是先把i值增1后运算。

包括空语句,函数调用语句在内都属于表达式语句。

C语言条件编译指令

1、#if指令

该指令检测表达式值是否为真。如果表达式的值为真,则编译后面的代码直到出现 #else、#elif 或 #endif 为止,否则不编译。

2、#endif指令

该指令用于终止 #if 指令。

3、#else指令

该指令用于 #if 指令之后,当前面的 #if 指令的条件不为真时,就编译 #else 后面的代码。

4、#elif指令

该指令综合了 #else 和 #if 指令的作用。下面的示例代码演示了 #if、#else、#elif 与 #endif 的组合使用情况。

参考资料来源:百度百科—C语言基础语句

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-03

1. 语句(statement):

如果我们浏览C的yacc语法中的statement,有如下内容:

statement
: labeled_statement
| compound_statement
| expression_statement
| selection_statement
| iteration_statement
| jump_statement
;

这里就很清晰地将C的“语句”分成了6类(翻译参考自《C程序设计语言》第二版):

带标号语句(labeled statement)

例如 

LABEL1:
    printf("hello,world!");

复合语句(compound statement,指用花括号{}括起来的语句表(statement list))

表达式语句(expression statement)

例如

i += 1 * 2;
a = 1;

选择语句(selection statement,如if-else,switch-case语句等)

循环语句(iteration statement,如while,for语句等)

跳转语句(jump statement,如goto,break,return等)


通俗一点讲,语句就是定义在函数或方法,且用分号或花括号结尾,是C语言程序最基本的组成部分


2. 指令

其实C中并没有单纯“指令”这一概念,和其相近的是“预编译指令”

如#include,#define,#ifdef等

其作用是在编译之前,由编译器将所包含的头文件通过单纯粘贴的方式合并成单一文件后,再根据条件语句删去一些代码形成最终可编译的代码


综上所述,语句和(预编译)指令有很大差别,其作用和编译先后顺序完全不同

第2个回答  2012-02-29
指令是规定计算机完成某种操作的命令。一条指令只能完成有限的功能。单片机汇编指令不是就那111条吗?常用的记住就行了,用C语言也可以啊。
指令有很多分类方式,比如按照指令完成的任务不同可分为五大类:
1、数据传送类;2、算术运算类;3、逻辑运算及移位类;4、控制程序转移类;5、位操作类。
语句理解起来就容易多了,一个分号标志着一个语句结束。语句比较灵活,即使没有执行指令,仅有一个分号也叫一个语句。语句不一定是指令,如for语句、while语句等不一定就是指令,也有可能是空等待延时的。指令都是有一定格式的,不是随便写上就能构成语句的。
以上是我个人理解,不知道到位否?
第3个回答  推荐于2017-10-09
可以理解为:C语言中的语句都是由一条或者很多条指令构成的。只有一条指令的时候,它也是一条C语言的语句,有很多条的时候,它也是构成这些C语言语句的指令。或者理解为:C语言语句是C语言的标准表达方式,而指令是为了执行相应的操作。本回答被提问者采纳
第4个回答  2012-02-28
一个函数分为两个部分,即函数头和函数体,函数头就是函数的定义,比如int main(),函数的语句块就是函数体,函数体包含的执行语句就是要执行的动作内容,每一个执行语句都是以“;”结尾,作为语句结束的标志。在C语言中的语句是用来向计算机系统发出操作指令的,一条语句编写完成经过编译后会产生若干条机器指令,实际程序中包含若干条语句。程序包括声明和执行部分,声明部分不能算作语句,比如:“int a;”就不是一条语句,因为不产生机器的操作,只是对变量提前的定义,而执行部分就是由语句组成。
相似回答