zoukankan      html  css  js  c++  java
  • 2 变量、运算符、位运算

    数值计算
    数据存储
    定义变量 申请存储空间
    数据输入
    数值计算
    数据输出

    一、变量
    定义变量
    访问变量
    变量=内存单元
    定义变量
    数据类型
    预定义数据类型

    写入
    输入 cin>>ctemp
    赋值 ctemp = 36
    初始化 int x=10,y;
    读出
    自动读取 ftemp =ctemp * 1.8 + 32;
    输出 cout<<ftemp;
    先定义 或访问

    关键字
    标识符 字母 数字 下划线组成,字母和下划线开头
    语句 分号结束
    常量
    其值不变 数据类型 默认整形/浮点型 32 032 0x32
    符号常量
    运算符
    分隔符

    三、算数运算
    +表达式
    运算符、操作数、括号
    表达式语句
    +运算符
    优先级 结合性

    算术运算符
    + - * /
    优先级 1-15

    强制类型转换
    double(3)
    自定转换(隐含转换)
    char--unsigned char--shootr--unsigned short -- int --unsigned -- long -- unsigned long -- float -- double
    表达式结果:值+类型
    括号 () 括号内的优先
    其它算术运算符
    取余运算符 %
    自增运算符 ++
    后置 变量先用再加 优先级1 结合性从左到右
    前置 变量先加再用 优先级2 结合性从右到左
    自减运算符
    前、后

    四、位运算
    一个二进制位可记录某种对象的开关状态
    +位反运算符~
    ~ 0101 0101
    = 1010 1010

    +位与运算符 &
    有0为0,全1为1 检测是零还是一
    +位或运算符 |
    全0为0,有1为1 某位置1
    +异或运算符 ^
    相同为0,不同为1 某位反置
    +左移运算符 <<
    低位补零
    +右移运算符 >>
    无符号 高位补零
    有符号 最高位补符号位

    五、赋值运算
    +赋值运算符 =
    修改变量的数值
    +泛化的运算符 = ++ --
    +复合赋值运算符
    += -= *= /= &= |= ^= <<= >>= 优先级与=一样
    +变量初始化
    +常变量
    const x=5
    使用const关键字指定常变量
    定义常变量时必须初始化
    常变量的值不能改变,例如不能再次被赋值

    六、数据的输入和输出
    +控制台程序

    +输入/输出流
    键盘 cin 显示器 cout
    +导入外部程序

    include

    using namespace std;

    cin>>变量1>>变量2....>>变量n;
    输入时用空格或Tab隔开,回车键结束

    cout<<表达式1<<表达式2....<<表达式n;
    endl表示换行
    执行该语句时,计算机首先从右到左顺序逐个计算表达式的结果,然后再按从左到右的顺序依次显示各表达式的结果,各显示结果之间没有间隔

    七、引用与指针
    +访问变量内存单位
    变量名
    引用
    指针
    +引用: 变量的别名
    公用同一内存空间

    定义引用变量
    引用类型&引用变量名 = 被引用变量名;
    引用类型是引用变量的数据类型,必须与被引用变量的类型一致:
    &是引用变量说明符。定义变量语句中,变量名前加& 表示该变量为引用变量;
    引用变量名需符合标识符的命名规则
    被引用变量名指定被引用的变量,该变量必须是一个已经定义的变量
    定义引用变量时必须初始化,即指定其是哪个变量的引用,引用变量只能因哟给一个变量,定义后不呢个再引用其他变量
    举例: 定义一个int型变量x及其因哟个变量xa
    int x;int &xa = x;//称xa是x的一个引用 int x,&xa = x;//可在一条定义语句中完成 int x,y,&xa = x;//一条定义变量语句可既包括普通变量,又包括引用变量

    //键盘输入一个数值,计算其平方的值
    #include <iostream>
    usingnamespace std;
    
    int main()
    {
      int x;
      cin>>x;
      /*
      cout<<x*x<<endl;//计算并显示x^2的值
      */
      int&xa = x;//定义一个变量x的应用变量xa
      cout<<xa * xa <<endl;//改用访问变量xa来计算并显示x^2的值
                                 //访问引用变量xa所读出的数据就是变量x的值
      return 0;
    }
    

    +指针 : 内存地址
    取地址运算符"&"
    &变量名
    所取出的变量地址是程序执行时该变量所分配内存的地址,每次执行程序时,变量不一定会被分配在同一内存单元,这取决于本次执行时计算机中哪些内存单元是空闲的
    一个变量可能占用多个字节,变量地址指的是变量所占内存单元第一个字节的地址,也称首地址
    取地址运算符是单目运算符,操作数必须是变量,其优先级为2级,结合性为从右到左;
    例:
    cout<<x;//显示变量x内存单元中保存的数值
    cout<<&x;//显示变量x的内存地址(十六进制)
    +指针类型
    通过地址访问某个变量x的步骤
    定义1个专门保存地址的变量(假设为p),该变量称为指针变量
    取出变量x的地址,将其赋值给p
    通过指针变量p所保存的地址来访问变量x的内存单元
    +指向类型
    +指针变量
    short x=10,y=20;

    定义指针变量
    指向类型*指针变量名;
    指向类型指定了指针变量能够保存哪种类型变量的地址,或者说制订了指针变量能够指向哪种类型的变量;
    是指针变量说明符,定义变量语句中,变量名前加""表示该变量为指针变量;
    指针变量名需符合标识符的命名规则
    例:
    已定义变量x和y: int x,y;
    int *p;//"int *"表示int型指针
    //定义一个int型指针变量p,未初始化,即未指向任何变量
    p=&x;//取出变量x的地址并赋值给指针变量p,则p指向变量x

    int *p=&x;//定义一个int型指针变量p,初始化为指向变量x
    p=&y;//区变量y的地址并赋值个指针变量p,则p修改了指向,现指向变量y

    +变量的间接访问
    指针运算符"*"
    *指针变量名
    按照指针变量所保存的地址访问所指向的内存单元,可写入或读出数据
    间接访问之前,指针变量应当指向某个已经存在的变量,即指针变量必须先赋值,再间接访问,否则将出现错误
    指针运算符是单目运算符,其优先级为2级,结合性为从右到左

    +注意
    指针变量应当先赋值,再间接访问
    +指针变量不能用整数来赋值
    int *p=10;//错误
    int *p=0;//赋值为0,表示p不指向任何变量

    +指针变量的指向那个类型应当与所指向变量的类型一致
    void类型
    int x=10;double y=10.5
    void p;
    p=&x;//正确
    cout<<
    ((int )p);//显示结果为10 void型指针间接访问int型需要强制转换为int *
    p=&y;//正确
    cout<<
    ((double *)p);//显示结果为10.5

    +相同类型指针变量之间可以相互赋值
    int x=10,pi=&x;
    double y=10.5,
    pd=&y;

    int *p1;
    p1=pi;//正确 指向类型相同 结果p1与pi都指向x
    p1=pd;//错误 指向类型不同

    void *p2;
    p2=pi;//正确
    p2=pd;//正确

    +可以定义指向常变量请的指针,通过该指针变量不呢个修改所指向的常变量的值
    const int x=10;
    x=15;//错误

    const int p;//指向常变量的指针
    p = &x;
    cout<<
    p;//正确
    *p=15;//错误 间接修改常变量的值错误

    int y=20;
    p=&y;
    cout<<*p;//正确
    *p=15;//错误 不能修改

    +可以定义指针类型的常变量(即指针常变量),需定义时初始化,以后不能再改变其指向
    int x=10,y=20;
    int *const p=&x;
    p=&y;//错误 不能重新赋值

  • 相关阅读:
    C# Path 目录
    Maxscript 窗体与结构体this的传递
    python---文件操作
    python---数据类型---集合
    python---购物车---更新
    python---三级菜单
    python---数据类型---字典
    python---数据类型---字符串
    python---购物车
    python---数据类型---列表
  • 原文地址:https://www.cnblogs.com/OceanF/p/9236855.html
Copyright © 2011-2022 走看看