zoukankan      html  css  js  c++  java
  • 类型、运算符与表达式

    主要知识点概述

    • 常量与变量:常量和符号常量、变量等
    • 整型数据:整型常量、整型变量等
    • 浮点型数据:浮点型常量、浮点型变量等
    • 字符型数据:字符常量、字符变量、字符串常量等
    • 变量赋初值:变量初始、函数的首部、函数体等
    • 各类数值型数据间的混合运算
    • 算术运算符和算术表达式:基本的算术运算符、运算符的优先级与结合性、
    • 强制类型转换运算符等
    • 赋值运算符合赋值表达式:赋值运算符、类型转换、赋值表达式等
    • 逗号运算符和逗号表达式

    基础知识

    1. 变量:装数据的容器,数据变,容器不变

      变量在使用前要先定义,基本格式:变量类型  变量名1,变量名2,……;

      Ex:int a,b,c;int a=0,b,c=0;//初始化

    2. 变量名:由字母(‘_’被看作字母)和数字组成的序列,但第一个字符必须是字母;大小写字母是有区别的;关键字不能作为变量名

    3. 四种基本类型

      char 字符型,占用一个字符长度,存放一个字符

      int 整型,通常占4个字节

      float 单精度浮点型

      double 双精度浮点型

      数据类型框架图:

    4. 施加在基本类型上的限定符

      short int a;//int可省略不写

      long int a;

      short 限定符尽可能的使int变短,long尽可能的使int变长

      signed与unsigned可用来限定char型和所有整型

      signed 整型等价于整型

      unsigned 整型使得原有整型长度不变,符号位变成了数据位,仅能表示0和正数

      signed char 强制char可以存储有符号整数

      unsigned char 强制char可以存储无符号整数

    5. 整数常量进制表示

      0 表示八进制

      0x 表示十六进制

    6. 字符常量

      使用单引号将字符括起来,参与运算时对应的是ASCII码值

    7. 转义字符(一般不可显示的,带有功能性的字符)

      a 响铃符

       换行符

       字符串结束的标识

    8. 字符串常量

      用双引号包裹起来的≥0的字符组成的序列为字符串常量

    9. 算数运算符:+、-、/、*、%、++自增、--自减

      %取余:x%y结果是x除以y的余数部分;x和y必须是整型操作数;在有负操作数的情况下,取模运算结果的符号取决于具体机器的实现

      /除法:整数除法会截断结果中的小数部分

      ++自增:y=++x表示先自加后赋值;y=x++表示先赋值后自加

    10. 关系运算符:<、>、<=、>=、==等于、!=不等于

      x>y x大于y返回真,否则返回假

      x>=y x不小于y返回真,否则返回假

      x==y x等于y返回真,否则返回假

      关系表达式的值是一个逻辑值,即“真”或“假”,“真”的表达式的值为1,“假”的表达式的值为0。

    11.逻辑运算符:&&且,||或,!非

      逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符。

    12.赋值运算符:=、+=、-=、/=、%=

      a%=10;等价于a=a%10;

    13.位运算符:&、|、<<左移一位、>>、^

      <<左移一位:包含处理函数#include<bitset>

    Ex:

    #include<iostream>
    #include<bitset>
    using namespace std;
     
    int main(){
        short int x=-178;
        short int y=x<<1;
        cout<<bitset<sizeof(x)*8>(x)<<endl;
        cout<<bitset<sizeof(y)*8>(y)<<endl;
        cout<<y<<endl;
        return 0;
    } 
     
     
    结果:
    1111111101001110
    1111111010011100
    -356

    14. 类型转换(只体现在结果上,不改变被转换变量的类型)

    (1)自动转换

      a. 赋值语句中的自动转换:float a=100;int b=a;

    Ex:

    #include<iostream>
    using namespace std;
     
    int main(){
        unsigned int a=1;
        int b=-2;
        long c=-2;
        cout<<a+b<<endl;
        cout<<a+c<<endl;
        return 0;
    }
     
     
    结果:
    4294967295
    -1

      b. 混合运算中的自动转换,短的类型向长的类型转换:1+1.1 

    (2)强制转换

    (类型名)表达式

    Ex:(float)a;//将变量a转换为float类型

    (int)(b+c);//把表达式a+b的结果转换成int型

    (float)5;//将数值5(默认为int类型)转换为float型

    15.整型类型的有关数据

    类型 类型说明符 长度 数的范围
    基本型 int 2字节 -32768~32767
    短整型 short 2字节 -215~215-1
    长整型 long 4字节 -231~231-1
    无符号整型 unsigned  2字节 0~65535
    无符号长整型 unsigned short 2字节 0~65535
    无符号短整型 unsigned long 4字节 0~(232-1)

    16.浮点型常量指数表示方法的注意点:字母e(或E)之前必须有数字,且e后面 的指数必须是整数

    17.浮点型变量的有关数据

    类型 位数 数的范围 有效数字
    float 32 -3.4*10-38~3.4*1038 7位
    double 64 -1.7*10-308~1.7*10308 16~17位
    long double 128 -1.2*10-4932~1.2*104932 18位

    18.逗号运算符和逗号表达式
    (1)逗号运算符:将两个表达式连接起来,又称为“顺序求值运算符”
            如:3+5,6+8
           一般形式:表达式1,表达式2
          求解过程:先求表达式1,再求表达式2,整个逗号表达式的值是表达式2的值,逗号表达式的值为14
    (2)一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式
           如:(a=3*5,a*4),a+5
           先计算出a的值等于15,再进行a*4的运算等于60(但a的值未变,扔为15),再进行a+5得到20,即整个表达式的值为20
    (3)逗号表达式的一般形式扩展:
           表达式1,表达式2,表达式3,……,表达式n
           它的值为表达式n的值

    19.符号常量:它的值在其作用内不能改变,也不能被赋值,一般使用大写字母表示符号常量

      使用符号常量的好处:含义清楚;能做到一改全改

    20.条件运算符:表达式1?表达式2:表达式3

    (1)执行顺序:先求解表达式1,若为非0(真),则求解表达式2,此时表达式2的值就作为整个条件表达式的值;若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。

    (2)条件运算符优先级高于赋值运算符,低于关系运算符和算术运算符。条件运算符的结合方向为“自右至左”。

    例:

    #include<stdio.h>
    int main(){
        char ch;
        scanf("%c",&ch);
        ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
        printf("%c
    ",ch);
        return 0;
    }
    
    
    运行结果:
    D
    d
  • 相关阅读:
    自学java--5
    自学java--4
    自学java--3
    自学java--2
    自学java--1
    java中的IO操作---File类
    TCP/UDP编程实例
    什么是服务端与客户端详解
    【提高组】并查集
    【ToDoList】自己选择的路跪着也要走下去
  • 原文地址:https://www.cnblogs.com/xintong2021/p/12733226.html
Copyright © 2011-2022 走看看