当前位置: 首页 > news >正文

C/C++基础----常量和基本数据类型

HelloWorld

#include <iostream>using namespace std;int main() {// 打印cout << "Hello,World!" << endl;return 0;
}

c/c++文件和关系

  • c++和c是包含关系,c++相当于是c的plus版本
  • c++的编译器也可以编译c语言
  • c++文件.cpp结尾
  • .h为头文件
  • .c为c语言文件
    在这里插入图片描述
关于注释

在这里插入图片描述

关于导入

  • 导入iostream库,字符串操作需要用到
  • 导入库的方法为 #include <库名字>

关于打印

  • c的打印为printf("格式化字符串",变量1,变量2)
  • c++ 打印字符串的方法为 std::cout << 内容 << std::endl;
  • 因为std是iostream中的方法,假设导入了别的库也有std方法,这样就不知道具体使用的哪个方法了,所以不能省略std
  • 使用using namespace std;指定了命名空间之后,该文件使用的命名空间都为std,可以省略std

关于main函数

  • c/c++的运行入口为main函数 有且必有一个 程序从此开始从上往下运行

关于main函数的return

  • 程序最后必须返回一个0告诉计算机我们的程序正常执行完毕

    在这里插入图片描述


常量

宏常量

常量不可修改

  • 宏常量定义完编译的时候是做替换操作,编译时把代码中的a全部替换为宏常量的内容,不会开辟内存
  • 语法为#define 常量名 内容
  • 没有等号和分号,不用指定类型
    #include <iostream>
    #define a "我是一个宏常量"using namespace std;int main() {cout << a << endl;return 0;
    }
    
    在这里插入图片描述

const修饰的变量

  • const修饰的变量是真实存在于内存的
  • 需要指定常量类型
  • 语法为const 类型 变量名=内容;
    #include <iostream>using namespace std;const int a = 20;int main() {cout << a << endl;return 0;
    }
    
    在这里插入图片描述

代码里面所有直接使用的字符串和数字都为常量


基本数据类型

有符号和无符号以及溢出的问题

  • c/c++中的整数类型和字符类型可分为有符号无符号,有符号取值范围内可以有负数,默认有符号,无符号反之没有负数。

  • 关键字为: 有符号signed 无符号 unsigned

  • 例如short的取值范围为-32768 ~ 32767(默认有符号)2个字节,在c和c++中两个字节用二进制表示为:
    在这里插入图片描述

  • 最低取值范围为:
    在这里插入图片描述

  • 最左边的高位表示为符号位,用来表示该数字是正数还是负数,如果为0则为正数,为1则为负数

  • 如果把高位变成1:
    在这里插入图片描述

  • 代码中溢出

    • 正常的

      #include <iostream>using namespace std;int main() {short a = 32767;cout << a << endl;return 0;
      }
      

      在这里插入图片描述

    • 超出1

      #include <iostream>using namespace std;int main() {short a = 32768;cout << a << endl;return 0;
      }
      

      输出的并不是32768

      在这里插入图片描述

  • 无符号类型及取值范围

    • 无符号类型给负号

      #include <iostream>using namespace std;int main() {// 添加了unsigned无符号关键字 默认有符号unsigned short a = -5461;cout << a << endl;return 0;
      }
      

      输出的并不是-5461,无符号赋值负数会有不可预期的效果

      在这里插入图片描述

  • 因为没有负数,取值范围变成65535

    #include <iostream>using namespace std;int main() {unsigned short a = 65535;cout << a << endl;return 0;
    }
    

    在这里插入图片描述

  • 超出之后还是有溢出问题
    在这里插入图片描述
    在这里插入图片描述

数据类型表格

数据类型类型大小取值
整数类型int4个字节-2147483648 ~ 2147483647
unsigned int4个字节0 ~ 4294967295
short int (可简写为short)2个字节-32768 ~ 32767
unsigned short2个字节0 ~ 65535
long int (可简写为long)32位系统4个字节,64位系统8个字节-
unsigned long8个字节以此类推,没有负数
long long8个字节-
unsigned long long8个字节以此类推,没有负数
浮点数类型float4个字节~7个数字
double8个字节~15个数字
long double16个字节提供18~19位有效数字
字符类型char1个字节-128 ~ 127
unsigned char1个字节0 ~ 255
布尔类型(c语言没有)bool1个字节c语言中false为0,其他为true
c++中有true和false,flase为0,其他为true

例子

  • typeid(变量).name() 查看变量类型
#include <iostream>using namespace std;int main() {int a = 10;short int b = 10;short b_1 = 10;long d = 10;long int d_1 = 10;long long int e = 10;long long e_1 = 10;float f = 1.2;double g = 1.26;long double g_1 = 456.65;char h = 'a';bool i = true;bool j = false;cout << "int:" << a << " 数据类型:" << typeid(a).name() << endl;cout << "short int:" << b << " 数据类型:" << typeid(b).name() << endl;cout << "short:" << b_1 << " 数据类型:" << typeid(b_1).name() << endl;cout << "long:" << d << " 数据类型:" << typeid(d).name() << endl;cout << "long int:" << d_1 << " 数据类型:" << typeid(d_1).name() << endl;cout << "long long int:" << e << " 数据类型:" << typeid(e).name() << endl;cout << "long long:" << e_1 << " 数据类型:" << typeid(e_1).name() << endl;cout << "float:" << f << " 数据类型:" << typeid(f).name() << endl;cout << "double:" << g << " 数据类型:" << typeid(g).name() << endl;cout << "long double:" << g_1 << " 数据类型:" << typeid(g_1).name() << endl;cout << "char:" << h << " 数据类型:" << typeid(h).name() << endl;cout << "bool true:" << i << " 数据类型:" << typeid(i).name() << endl;cout << "bool false:" << j << " 数据类型:" << typeid(j).name() << endl;return 0;
}

在这里插入图片描述

http://www.lryc.cn/news/336051.html

相关文章:

  • 什么是生成式AI?有哪些特征类型
  • 《Linux C/C++服务器开发实践》之第7章 服务器模型设计
  • SSH穿透ECS访问内网RDS数据库
  • python 有哪些函数
  • ubuntu web端远程桌面控制
  • PCL 点到三角形的距离(3D)
  • C# wpf 嵌入外部程序
  • 【ELK】ELK企业级日志分析系统
  • 详细的讲一下java的接口回调
  • 如何将powerpoint(PPT)幻灯片嵌入网页中在线预览、编辑并保存到服务器?
  • [Java基础揉碎]日期类
  • 4.10作业
  • Hive概述与基本操作
  • 安装 FFmpeg
  • 18、差分
  • 13 指针(上)
  • AI 对话完善【人工智能】
  • 利用数组储存表格数据
  • [数据概念|数据技术]智能合约如何助力数据资产变现
  • JS中的常见二进制数据格式
  • uniapp开发h5端使用video播放mp4格式视频黑屏,但有音频播放解决方案
  • Hive的分区与排序
  • Objective-C学习笔记(内存管理、property参数)4.9
  • C语言进阶课程学习记录-第29课 - 指针和数组分析(下)
  • 一起学习python——基础篇(13)
  • SOCKS代理概述
  • AI助力M-OFDFT实现兼具精度与效率的电子结构方法
  • 【数据结构】单链表(一)
  • SCI一区 | Matlab实现INFO-TCN-BiGRU-Attention向量加权算法优化时间卷积双向门控循环单元注意力机制多变量时间序列预测
  • Coursera吴恩达《深度学习》课程总结(全)