c++数据类型与运算符知识总结和例题代码

  1.  #include<iostream>   编译预处理指令之一

Using namespce std;  使用命名空间std

每个C++程序有且只有一个主函数

  1. 单行注释//           多行注释/*  */
  2. 数据类型

基本类型:整型:(短整型 short int 2)(整型 int 4)(长整型 long int 4

          字符型char 1

          实型:(单精度型 float 4)(双精度型 double 8)(长双精度型 long double 8

其他类型:(布尔型 bool)(枚举类型 enum)(数组类型)(结构体类型 struct)(共用体类型 union)(类类型 class)(指针类型)(引用类型)(空类型 void)

Tip!!

void用于两种情况:1.函数无返回值或参数2.定义指针时指针的目标类型不确定

  1. 字符型常量 两个撇号   字符串型常量  两个撇号
  2. 整型常量:   十进制    第一个不为0

             八进制    第一个必为0

             十六进制  0x(0X)开头

在后面加L(l)指定为long类型,U(u)为unsigned类型,但是与数值之间不能有空格!

  1. 实型常量:(浮点数)  格式:<数符>数字E指数  E2代表10的平方

在内存中以规范化指数形式存储

          数字部分必须小于1,小数点后第一个数必须非0)

  1. 字符常量:  都只占1B  内存中存放二进制代码(ASII码)

         普通字符:单撇号  包含一个字符  ‘10’错误!!

         转义字符:   \n   换行     10

                     \0    空字符   0

                    \ddd   1~3位八进制数

                     \xhh  1~2位十六进制数

         字符串常量: “”   空字符串

                    系统自动在字符串结尾处添加一个空字符’\0’,标志一  个字符串的终结 ,导致长度多1B

           符号常量:  #define 预处理宏替换指令

                     格式:#define 符号常量标识符 常量值

           常变量:  const  数据类型  常变量标识符=常量值;

                     必须在定义的时候赋值

  1. 变量:    如果没有赋初值的情况下:

          局部变量  初值不确定

          全局变量   初值0

  1. 标识符   字母,数字,下画线组成  必须字母或下画线开头!!!
  2. 关键字(不能作为标识符)

asm  auto  bool   break  case   catch   char   class   const  const_cast   continue   default   delete   do   double   dynamic_cast    else    enum   explicit   export   extern   false   float   for   friend   goto   if   inline   int    long   mutable   namespace   new    operator   private   protected    public    register   reinterpret_cast   return   short   signed  sizeof  static  static_cast   struct   switch   template  this  throw  true  try  typedef  typeid  typename  union  unsigned  using  virtual   void   volatile  wchar_r  while

  1.  赋值运算符有返回值

  /  结果取整   %  操作数,结果为整型

i++后置  先引用,自身+1

++i前置  先+1, 后引用     

  1. 逻辑运算符:

!非 > && 与 > || 或

13.  在比较两个实数(浮点数,双精度数)相等时,看差值的绝对值大于或小于给定的小数值

14.  逗号(优先级最低)表达式的结果是最右边表达式的值

如:a=3,b=9  的值为9

15.   sizeof()不是函数,是一种单目运算符

     不要把|||&&&混淆了 newdelete也是运算符

  补充:(重要)

&

    (1)按位运算符; (2)逻辑运算符

      作为逻辑运算符时,&左右两端条件式有一个为假就会不成立,但是两端都会运行,比如(1+2)=4 &(1+2)=3;1+2=4即使为假也会去判断1+2=3是否成立。

&&——逻辑运算符

     &&也叫做短路运算符,因为只要左端条件式为假直接不成立,不会去判断右端条件式。

相同点:只要有一端为假,则语句不成立

|||都是表示。区别是||只要满足第一个条件,后面的条件就不在判断,而|要对所有的条件都进行判断。

16.   数据类型转换:

  (1)隐式转换(自动转换)边转换边计算

     • 自动将字符型转换为整型

     •  由低字节向高字节转换,非布尔值向布尔值转换

       (short 2/char 1)-int 4-unsigned 4-long 4-unsigned long 4-double 8

         float 4-double 8

例子:‘A’-10+5*2.0+20.8/4=65-10+10.0+5.2=65.0+5.2=70.2

  (2)显式转换(强制转换)  转换后再次使用值不发生变化!!!

      格式:(类型)表达式  或   类型(表达式)

• 计算原则:转换为当前表达式中字节数最高的类型进行运算,同

字节情况下有浮点数就转化为浮点数运算

先计算,后赋值

/*按从小到大的顺序输出两个整数*/

#include<iostream>

using namespace std;

int print(int x,int y)

{

    int z;

    if(x<y)

    {

        z=x;

        x=y;

        y=z;

    }

    cout<<x<<" "<<y<<endl;

}

int main()

{

    int a,b,m;

    cin>>a>>b;

    print(a,b);

    return 0;

}

//判断输入的浮点数是否为0

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

    float f_tast;

    cin>>f_tast;

    if(fabs(f_tast)<=1e-6)

    {

        cout<<"输入的数据约等于0";

    }

    if(fabs(f_tast)>1e-6)

    {

        cout<<"输入的数据大于0";

    }

    return 1;

}//判断闰年 1.能被4整除,不能被100整除 2.能被400整除

//(year%4==0&&year%100!=0)||year%400==0

个人解法:

#include<iostream>

using namespace std;

int main()

{

    cout<<"请输入年份:"<<endl;

    int year,day;

    cin>>year;

    if((year%4==0&&year%100!=0)||year%400==0)

    {

        day=31+29+31+30+4;

        cout<<day;

    }

    else

        {

            day=31+28+31+30+4;

          cout<<day;

        }

    return 0;

}

教材解法:

#include<iostream>

using namespace std;

int main()

{

    cout<<"请输入年份:"<<endl;

    int year,day;

    cin>>year;

    day=31+28+31+30+31+4;//计算非闰年的天数

    if((year%4==0&&year%100!=0)||year%400==0)  //判断闰年

    {

        day++;

    }

    cout<<year<<"年的第"<<day<<"天是5月4日";

    return 0;

}

//例题

#include<iostream>

using namespace std;

int main()

{

    double a=3.3,b=1.1;

    int i=a/b;

    cout<<i<<endl;

    return 0;

}

i=2浮点数(double是64位的)乘法和除法有精度损失,答案可能是 2.99999,被取整了  double a=3.3d,b=1.1d;不然会被强制转换

//例题(实现个位,十位,百位输出)

#include<iostream>

using namespace std;

int main()

{

    int splitInt;

    cout<<"输入一个3位正整数";

    cin>>splitInt;

    int one;

    int ten;

    int hundred;

    hundred=splitInt/100;

    ten=splitInt%100/10;

    one=splitInt%10;

    cout<<"个位:"<<one<<"十位:"<<ten<<"百位:"<<hundred;

    return 0;

}

//例题!!!易错

#include<iostream>

using namespace std;

int main()

{

    int a,b;

    cout<<"input a,b:";

    cin>>a>>b;

    cout<<"a="<<a<<","<<"b="<<b<<endl;

    cout<<"(a++)+b="<<(a++)+b<<"\n";  //1+2

    cout<<"a+++b="<<a+++b<<"\n";  //此时a的值改变了 2+2

    return 0;

}

//假如两个正整数都不是很大,(例如都不超过1000),不引进第三个变量,如何交换两个整数变量的值?

#include<iostream>

using namespace std;     

int main()

{

    int a,b;

    cin>>a>>b;

     a=a+b;

    b=a-b;

     a=a-b;

    return 0;

}

int a,b;
a=10; b=15;            标准算法
int t;
t=a; a=b; b=t;

//从键盘上输入一个整型的数,让它与一个浮点型数比较大小,并输出其中较大那个数

#include<iostream>

using namespace std;

int main()

{

    int a;

    float b;

    cin>>a>>b;

    if(a>b)cout<<a;

    else cout<<b;

    return 0;

}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值