c++总结(1)


一、c语言的左移与右移

在这里插入图片描述

左移 (右移) 总而言之是指 :把一个数的所有位都向左(向右)移动若干位。
如:3的二进制为 00000011
左移两位后: 00001100(十进制中的12)
右移两位后 : 00000000

在这里插入图片描述
当数拥有负号时,负数将以补码的方式存在于编译器中。
如:
-3的补码 为 100000011(二进制)
右移两位后 10000001
左移两位后 10001100
计算中,空位补符号位,即正数补零,负数补1。
在这里插入图片描述
一般来说,将数字左移(右移)相当于将数字 乘以(除以)2的n次方。其中,如果出现小数,取整即可。

二、const 修饰符

  1. 与define的区别

    • define只是简单的文本替换,const 除了可以定义常量外,还可以用来定义一些简单的函数
    • define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。
  2. 指针问题

常指针
格式:char * const p;
特点:const接近p,只可以改变地址内的常量
说明:常指针所指向的地址不能变,但是其所指向的地址中的值可以变。即指针本身是个常量。

指向常量的指针
格式: const char * p 或 char const * p;
特点:* 接近 p,只可改变地址
说明:指针所指向的地址可以改变,但是其地址中的值为常量,不能改变。即指针所指向的值是个常量。

指向常量的常指针
如 const char * const p 或 char const * const p;
特点:什么都不可改变
说明:指针所指向的地址不可以改变,且其地址中的值为常量,不能改变。

三、应注意的问题

  1. 在默认情况下,运算符“>>"将跳过空白符。
  2. 当类型为"string"时,输入字符串遇到空格就结束。

猜你喜欢

转载自blog.csdn.net/qq_52081162/article/details/114482071