精华内容
下载资源
问答
  • 一个表达式的最后加上一个分号就成了一个语句。 栗子: 赋值表达式 a = 3 赋值语句 a = 3; i = i+1 (表达式) i = i+1;(语句) 任何表达式都可以加上分号成为语句: i++; x+y; ...

    一个表达式的最后加上一个分号就成了一个语句。

    栗子:

    赋值表达式 a = 3
    赋值语句 a = 3;

    i = i+1 (表达式)
    i = i+1;(语句)

    任何表达式都可以加上分号成为语句:
    i++;
    x+y;

    展开全文
  • 表达式语句 :在表达式后面加上一个分号,就转变成为语句。 C语言并不存在专门的“赋值语句”,赋值符号“=”就是一种操作符号,赋值就在表达式内进行。 代码块 :位于一对 花括号 之内的可选的声明和语句列表

    提示:本文是对C语言基础知识表达式、语句、操作符部分的回顾总结。



    语句

    基本概念

    空语句 :本身只包含一个分号“ ; ”,并不执行任何任务。

    表达式语句 :在表达式后面加上一个分号,就转变成为语句
    C语言并不存在专门的“赋值语句”,赋值符号“=”就是一种操作符号,赋值就在表达式内进行。

    代码块 :位于一对 花括号 之内的可选的声明和语句列表。

    补充:
    C并不具备任何输入/输出语句:I/O是通过调用库函数实现的。
    C也不具备任何异常处理语句,它们也是通过调用库函数来完成的。


    if语句

    if( expression )
    	statement
    else
    	statement	
    

    expression可以式任何能够产生整型结果的表达式——零值表示“假”,非零值表示“真”。
    C并不具备布尔类型bool,而是用整型来代替。

    else子句从属于最靠近它的不完整的if语句。(就近原则)


    while语句

    while ( expression )
    {
    	statement
    }
    

    循环的测试在循环开始执行之前进行,如expression为“假”,循环就不会执行。

    break :用于 永久终止循环 ,执行完break语句之后,执行流下一条执行的语句就是循环正常结束后应该执行的那条语句。

    continue :用于 永久终止当前的那次循环 ,执行完continue语句之后,执行流接下来就是重新测试表达式的值,决定是否再执行此循环。
    break和continue这两条语句只对它所在的内层循环起作用。


    for语句

    for( expression1; expreesion2; expression3 )
    {
    	statement
    }
    

    statement 称为 循环体
    expression1 为 初始化 部分,它只在循环开始时执行一次。
    expression2 称为 条件 部分,它在每次循环执行前都要执行一次。
    expression3 称为 调整 部分,它在每次循环执行完毕,在条件部分即将执行之前执行。


    do…while语句

    do
    	statement
    while ( expression ); 
    

    当需要循环体至少执行一次的,选择 do…while


    switch语句

    switch ( expression )
    {
    	case constant-expression1: statement; break;
    	...
    	case constant-expression5: statement; break;
    	default: break;
    } 
    

    expression的结果必须是整形值。
    每个 case 标签必须具有一个唯一的值。
    break 语句的实际效果就是把语句列表划分为不同的部分。

    常量表达式(constant-expression) :是指在编译期间进行求值的表达式,它不能是任何变量。

    C语言没有任何简便的方法指定某个范围的值,所以该范围内的每个值都必须以单独的 case 标签指出。

    default 语句:当switch表达式的值并不匹配所有的case标签的值的时候,default语句后面的句子就会执行。

    每个switch语句中只能出现一条default子句,但是它可以出现在语句列表的任何位置。


    goto语句

    语句标签: statement1
    	statement2
    	goto 语句标签;
    

    语句标签 :就是标识符后面加个冒号。

    要使用 goto 语句,必须在希望跳转的语句前面加上语句标签。
    包含这些标签的 goto 语句可以出现在程序的任何位置。

    goto 语句是一种危险的语句。


    操作符

    各类操作符(operator)

    以下按照操作符的功能和使用方式进行分类。


    算术操作符

    ‘ + ’‘ - ’‘ * ’‘ / ’‘ % ’

    除了 % 操作符,其余都是既适用于浮点类型又使用于整数类型。


    移位操作符

    左移操作符 —— <<
    右移操作符 —— >>

    左移 :值最左边的几位被丢弃,右边多出来的几个空位则由0补齐。

    右移 :分为两种方式——逻辑移位、算术移位
    逻辑移位 :左边移入的位用 0 补齐。
    算术移位 :右边移入的位由原先该值的符号位决定,符号位为 1 则移入的位均为 1,符号位为 0 则移入的位均为 0 ,这样能够保持原数的正负形式不变。


    位操作符

    ‘ & ’‘ | ’‘ ^ ’

    它们分别执行AND、OR 和 XOR(异或) 操作,它们要求操作数为整数类型,
    它们对操作数对应的位进行指定的操作,每次对左右操作数的各一位进行操作。

    /*将value的第bit_number位设置为 1 */
    value = value | 1 << bit_number;
    value |= 1 << bit_number;
    
    /*将value的第bit_number位设置为 0 */
    value = value & ~ ( 1 << bit_number );
    valur &= ~( 1 << bit_number );
    
    /*对指定位判断的表达式*/
    value & 1 << bit_number
    

    赋值

    ‘ = ’
    赋值操作符的结合性(求值顺序)是操你个右到左。

    符合赋值符:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=


    单目操作符

    ‘ ! ’ :对操作数执行逻辑反操作。

    ‘ ~ ’ :对整型类型的操作数进行 求补操作,所有原先为 1 的位变为 0 ,0 的位变为 1 。

    ‘ - ’ :产生操作数的负值。

    ‘ + ’ :产生操作数的值,什么也没干。

    ‘ & ’取地址 ,产生操作数的地址。

    ‘ * ’取引用 ,间接访问操作符。

    ‘ sizeof ’ :判断它的操作数的 类型长度 ,以字节位单位表示。

    ‘ (类型) ’ :被称为 强制类型转换(cast),它用于显式地把表达式的值转换为另外的类型。

    ‘ ++ ’‘ - - ’ :
    在操作数之前的操作符在变量值 被使用之前增加 它的值;
    在操作数之后的操作符在变量值 被使用之后才增加 它的值。


    关系操作符

    ‘ > ’‘ >= ’‘ < ’‘ <= ’‘ != ’‘ == ’

    这些操作符产生的结果都是一个整型值,而不是布尔值。


    逻辑操作符

    逻辑操作符的 短路求值:
    &&操作符 的左操作数总是首先进行求值,如果它的值为真,然后就紧接着对右操作数求值。如果左操作数为假,就不会对右操作数求值。

    || 操作符 也有相同的特点,首先对左操作数求值,如果为真,右操作数便不会求值。

    逻辑操作符(&& 、||)用于 测试零值和非零值
    位操作符(& 、 | 、^)用于比较它们的操作数中 对应的位


    条件操作符

    条件操作符表达式:
    expression1 ? expression2 : expression3
    

    条件操作符同样满足 短路求值 ,即首先计算expression1,如果值为真,那么整个表达式的值就是 expression2 的值,expression3 不会进行求值。


    逗号操作符

    expression1, expression2, ... , expressionN
    

    逗号操作符将两个或多个表达式分隔开来。这些表达式自左向右逐个进行求值,整个逗号表达式的值就是最后那个表达式的值。


    下标引用、函数调用和结构成员

    下标引用操作符是一对方括号,它接受两个操作数:一个数组名和一个索引值。

    C的下标值总是从零开始,并且不会对下标值进行有效性检查。

    除了优先级不同之外,下标引用操作和间接访问表达式是等价的:
    array[ 下标 ]
    * ( array + (下标) )

    ‘ . ’ ‘ -> ’ 结构访问操作符用于访问一个 结构的成员


    左值和右值

    左值(L-value) :就是那些能够出现在赋值符号左边的东西。

    右值(R-value) :就是那些可以出现在赋值符号右边的东西。

    字面值常量都不是左值。


    表达式求值

    隐式类型转换

    C的整型算术运算总是至少以 缺省整型类型(int) 的精度来进行的。为了获得这个精度,表达式中的 字符型(char)短整型(short) 操作数在使用之前会 被转换为普通整型(int) ,这种称为 整型提升(integral promotion)


    算术转换

    算术转换(arithmetic conversion) :如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数转换为另外一个操作数的类型,否则操作就无法进行。

    寻常算术转换(usual arithmetic conversion) 的层次体系:
    long double
    double
    float
    unsigned long int
    long int
    unsigned int
    int

    如果某个操作数的类型在上面的排名较低,那么它首先将转换为另外一个操作数的类型后再执行操作。


    优先级和结合性

    优先级:
    ( ) > 访问结构成员 >单目 > 算术 > 移位 > 关系 > 位操作 > 逻辑操作 > 赋值 > 符合赋值 > 逗号操作符。

    两个相邻操作符的执行顺序由它们的 优先级 决定,如果优先级相同,则由它们的 结合性 决定。


    展开全文
  • 如果在表达式后面加上一个“;”分隔符,这就被称为“表达式语句”。它表明“只有表达式,而没有其他语法元素的语句”。 二、两者的功能区别:表达式经常用作作为一个函数调用的参数,它可以放在任何需要一个值的...

    语句和表达式的关系???

    一、两者的定义区别:bai一个表达式会产生一个值du,它可以放在任何需zhi要一个值的地方,如语句则是由分号dao分隔的句子或命令。如果在表达式后面加上一个“;”分隔符,这就被称为“表达式语句”。它表明“只有表达式,而没有其他语法元素的语句”。

    二、两者的功能区别:表达式经常用作作为一个函数调用的参数,它可以放在任何需要一个值的地方。而语句则是一个行为,循环语句和if语句就是典型的语句,一个程序是由一系列语句组成的。

    三、是否支持嵌套方式的区别:在javascript中所有表达式都有返回值,表达式均可以嵌套在别的表达式中,但语句不行,语句只能独立出现。

    在这里插入图片描述

    扩展资料
    表达式和语句之间,存在一种叫做表达式语句的。序基本上是一系列语句的结合(基础声明除外)。无论何时,当JavaScript需要编写一条语句时,均可以写入一个表达式。这样的语句称为表达式语句(expression statement)。但是反之并不成立,不能编写一条语句来代替表达式。

    例如:if语句var x;if (y >= 0) {x = y;} else {x = -y;}。与表达式类似的是条件运算符。上述语句可用以下语句代替var x = (y >= 0 ? y : -y);两种表达均可实现一样的作用效果。

    参考资料来源:百度百科-javascript

    展开全文
  • C++将赋值表达式的值定义为左侧成员的值 ...任何表达式加上分号都会成为语句,但反过来不一定成立: int n; 顺序点:程序执行过程中的一个点,在这里,在进行下一步之前将确保对所有的副...
    • C++将赋值表达式的值定义为左侧成员的值
    • 赋值操作符是自右向左结合的
    • cout.setf(ios:: boolalpha);//调用设置标记,命令cout输出true或false,而非1或0.
    • 任何表达式加上分号都会成为语句,但反过来不一定成立:
      int n;

     

    顺序点:程序执行过程中的一个点,在这里,在进行下一步之前将确保对所有的副作用进行了评估。

    完整表达式:不是另一个表达式的子表达式(没有任何表达式是它的父表达式)。比如下面的整个表达式是一个表达式,其中的两个子表达式都不是完整表达式:

    y = (4 + x++) + (6 + x++);//完整表达式结束后对所有副作用进行了评估,在子表达式(4+ x++)完成后并不一定对x进行了评估,结果有歧义,因此应避免这么写。

     

    • 任何完整的表达式末尾都是一个顺序点。
    • 可以使用递增/减操作字符型。
    • 前缀递增/减 和 解除引用 优先级相同(自右到左进行结合), 后缀递增/减 要高于 解除引用。
      *++pt;//pt 指针先自+1再解除引用,指针改变
      ++*pt;//pt指针解除引用后的值自加1
      (*pt)++;//pt指针解除引用后的值自加1
      *pt++;//pt 指针先自+1再解除引用,指针改变

       

    • ","操作符允许将两个表达式放到C++只允许放一个表达式的地方。
    • ","操作符是一个顺序点,且","表达式的值是表达式第二部分的值。
    • ","操作符在所有操作符中的优先级最低。
    • 如果在for循环内声明内部变量tmp,则每次循环都会被分配和释放,这比在循环前声明要慢一些。
    • strcmp(str1, str2)比较系统顺序:C++将C-风格字符串视为地址,因此不能用“==”比较。1在2后,>0。
    • 如果比较的两个字符串对象中至少有一个string对象,则可以使用"==","!="。
    • string类对象不使用空白来标记末尾, C-风格和char数组表示的字符串用空白标记。
    • 计时函数:在头文件ctime中,clock_t clock();

        符号常量CLOCKS_PER_SEC:每秒包含的clock_t数。

    • 类型别名:C++中声明类型别名的两种方法:

        1.#define mynamedchar char;会出现下面的问题:

    #define floatPointer float *;
    floatPointer pa, pb;//编译时会转换成float * pa, pb。只声明了一个指针    

        2.typedef char mychar mynamedchar;不会出现上述问题。

    • 文件尾条件

    windows使用cntr + Z 和 回车键 模拟文件尾

    检测到EOF时,cin将 eofbit 和 failbit 设置为1。并且会停止输入,此时可以调用cin.clear()恢复输入。

    cin.eof()---->最后一次的eofbit为1就返回true

    cin.fail()---->最后一次的eofbit 和 failbit 都1才返回true

    • cin.get(char)返回一个cin对象,istream提供了一个将istream对象转换为bool的函数。当cin出现在需要bool 的时候,会自动转换成bool,读取成功返回true,失败返回false。
    • cin.get()返回输入中的下一个字符,将字符编码作为int值返回,可以使用cout.put(char)函数输出字符。
    • 达到EOF时cin.get()将返回EOF(iostream中定义的,一般为-1);而cin.get(char)则不会将该特殊值赋给char,因此不会导致cin.get()赋值的类型问题。

     

    转载于:https://www.cnblogs.com/yuantf/p/3171427.html

    展开全文
  • 变量 变量就是一个被命名的内存地址,这个地址用来存储可被... type必须是一个有效的数据类型加上任何合理的修饰符,voriable_list就是一个或者多个变量名称,中间用逗号分开,以分号结尾。以下是一些例子:int i,j,
  • 语句:一个表达式加上一个分号就构成了一个语句。一、最简单的语句——空语句空语句只由一个分号构成。; //空语句【注意】:在写代码的时候不要漏写分号,也不要多写分号。否则我们的代码可能会违反我们的本意if(i =...
  • linux c 语句

    2017-10-08 19:27:43
    1.c语言中,程序分为几种基本结构,有哪些语句来实现? c语言中,程序分为顺序结构...语句就是由表达式末尾加上一个分号例如 x=x+y;x++;等 或者前面没有任何表达式,只有一个分号即为空语句 如;可以作为延时来用。
  • c++程序的流程控制

    2020-07-20 12:10:26
    任何一个表达式(上一章中给出了详细介绍)后面加上一个分号就构成了表达式语 句(没有分号的不是语句)。常见的表达式语句有以下几种:空语句、赋值语句、函数调用 语句等。 空语句:指只有一个分号而没有表达式的...
  • 文章目录空语句表达式语句代码块if语句while语句break和continue语句for语句do语句switch语句switch中的break语句default子句goto语句(**慎用...  只要在表达式后面加上一个分号,就可以把表达式转变为语句。 pr...
  • 语句

    2017-05-23 23:45:20
    在一个表达式后面加上一个分号,就可以把表达式转变成语句。 x = y + 3; 下面的语句也是完全合法的 y + 3; 当改语句被执行时,表达式被求值,但它的结果并不保存在任何地方。 3.代码块 代码块就是...
  • 1.空语句只包含一个分号,它本身并不...通过在表达式后面加上一个分号,就可以把表达式转变为语句。因此,表达式 x = y + 3; ch = getchar(); 实际上是表达式语句,而不是赋值语句。 3.if语句的语法如下: ...
  • 数据

    2020-05-27 22:19:35
    ● 在表达式后边加上一个分号,就可以把表达式转变为语句 ● printf 函数会返回一个值,其值是 它所打印的字符数 三、 代码块 ● 代码块就是位于一对花括号之间的可选的声明和语句列表 ● 代码块可以用于要求出现...
  • 每个shell命令的进程号通常是不同的,为了每次调用$$时得到的进程号相同,必须把这4行放在一条命令中,这里用分号把它们连接成一条命令(在书写时为了易读,用\拆成了多行),这样每次.$$便是同一个文件了。...
  • 2.空语句:空语句只有一个分号;用于程序中某个语法要求应该有一条语句但是不做任何处理数据的情况。 例如:for(int i=0;i<10;i++);该循环体只有;表示只包含一条空语句,循环体被执行十次,但是不做任何处理;
  • (1)空语句:本身只有一个分号,在不需要执行任何任务,但语法要求出现一条完整的语句时使用。 (2)表达式语句:如:x=y+3; (3)控制语句,包括选择语句和循环语句。 一、选择语句(分支语句) 分类:if语句和switch...
  • 2、语句分类(1)空语句:本身只有一个分号,在不需要执行任何任务,但语法要求出现一条完整的语句时使用。(2)表达式语句:如:x=y+3;(3)控制语句,包括选择语句和循环语句。一、选择语句(分支语句)分类:if语句和...
  • JavaScript基本语法

    2021-04-02 00:19:56
    一、表达式与语句的区别 表达式是由运算符构成,并运算产生结果的语法...如果在表达式后面加上一个“;”分隔符,这就被称为“表达式语句”。它表明“只有表达式,而没有其他语法元素的语句”。例如: var a = (5 + 6
  • 语句,C语言的灵魂

    2018-01-27 16:40:12
    要想实现C语言,那就必须依靠语句。只有把语句组合起来才可以构成可执行...赋值语句是在表达式里面完成的,任何表达式,后面只要加上一个分号,就可以变成语句。赋值语句常用的操作符包括 “+ -*/"这四种。现在在C语
  • 第5章 1.cout在显示bool值之前将它们...2.任何表达式加上分号就成为了语句,反之不对,比如返回语句、声明语句、for语句 3.strcmp()函数,#include<cstring>,判断字符串是否相同,接受两字符串地址作为...
  • C++中的分支语句

    2020-09-10 16:57:30
    单一语句:在任何一个表达式后面加上分号(;); 如: c = a+b; 复合语句:用一对花括号{}括起来 的语句块,在语法上等效于一个单一语句。 if语句: if语句是最常用的一种分支语句,也称为条件语句。 if(p!=NULL){ ...
  • 一个表达式末尾加上分号就成了表达式语句。 2.用花括号括起来的是复合语句。 3.条件语句: else与离它最近的尚未匹配的if匹配。建议:if和else的花括号都写上,并注意缩进。switch结束的两种情况:1.遇到break;2...
  • 入门学习Linux常用必会60命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    hda1中的“1”代表hda的第一个硬盘分区 (partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查 /var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的...
  • 宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如果有错误,只能在编译已被宏展开后...
  • C语言第八课 预处理

    2017-05-24 12:54:58
    1.宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的替换,字符串可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不做任何检查,如有语法错误,只能在编译已被宏展开...
  • 1、#define 是宏定义 1.1宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如有错误,...
  • 宏的作用域

    千次阅读 2015-09-27 20:25:48
    1.宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如有错误,只能在编译已被宏展开后...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

任何表达式加上一个分号