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.rhkb.cn/news/308477.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity android 打包

现在使用的unity版本hub不支持导入support&#xff0c;只能自己下载对应的支持 找到对应的sdk&#xff0c;ndk

自己动手封装axios通用方法并上传至私有npm仓库:详细步骤与实现指南

文章目录 一、构建方法1、api/request.js2、api/requestHandler.js3、api/index.js 二、测试方法1、api/axios.js2、main.js3、app.vue4、vue.config.js5、index.html 三、打包1、配置package.json2、生成库包3、配置发布信息4、发布 四、使用1、安装2、使用 五、维护1、维护和…

探索GlusterFS:开源分布式文件系统

目录 引言 一、GlusterFS简介 &#xff08;一&#xff09;基本介绍 &#xff08;二&#xff09;GlusterFS特点 &#xff08;三&#xff09;GlusterFS术语 &#xff08;四&#xff09;GlusterFS工作流程 二、GlusterFs的卷类型 &#xff08;一&#xff09;卷类型 &…

通过一篇文章让你了解Linux的重要性

Linux 前言一、什么是Linux后台vs前台为何大多数公司选择使用Linux作为后台服务器 二、Linux的背景介绍UNIX发展的历史Linux发展历史开源官网发行版本DebianUbuntu红帽企业级LinuxCentOSFedoraKali Linux 三、国内企业后台和用户使用Linux现状IT服务器Linux系统应用领域嵌入式L…

linux下动态库的运用

这里写目录标题 将头文件放入系统路径将.so动态库放入系统路径复制库文件&#xff1a;更新库缓存&#xff1a;验证安装&#xff1a; 完成 将头文件放入系统路径 先将include内容放入/usr/local/include下&#xff0c;这里可以先在/usr/local/include创建一个mkdir hpdf 文件夹…

一种驱动器的功能安全架构介绍

下图提供了驱动器实现安全功能的架构 具有如下特点&#xff1a; 1.通用基于总线或者非总线的架构。可以实现ethercat的FSOE&#xff0c;profinet的profisafe&#xff0c;或者伺服本体安全DIO现实安全功能。 2.基于1oo2D架构&#xff0c;安全等级可以达到sil3。 3.高可用性。单…

Pixel-GS:用于3D高斯溅射的具有像素感知梯度的密度控制

Pixel-GS: Density Control with Pixel-aware Gradient for 3D Gaussian Splatting Pixel-GS&#xff1a;用于3D高斯溅射的具有像素感知梯度的密度控制 Zheng Zhang  Wenbo Hu†  Yixing Lao   老宜兴市郑张文博胡 † Tong He  Hengshuang Zhao† 赵同和恒双 †1122113311 …

【oracle数据库安装篇一】Linux5.6基于LVM安装oracle10gR2单机

说明 本篇文章主要介绍了Linux5.6基于LVM安装oracle10gR2单机的配置过程&#xff0c;比较详细&#xff0c;基本上每一个配置部分的步骤都提供了完整的脚本&#xff0c;安装部分都提供了简单的说明和截图&#xff0c;帮助你100%安装成功oracle数据库。 安装过程有不明白的地方…

抖音视频无水印采集拓客软件|视频批量下载提取工具

抖音视频无水印批量采集拓客软件助力高效营销&#xff01; 随着抖音平台的崛起&#xff0c;视频已成为各行各业进行营销的重要工具。但是&#xff0c;传统的视频下载方式往往效率低下&#xff0c;无法满足快速获取大量视频的需求。针对这一问题&#xff0c;我们开发了一款视频无…

【PDF.js】PDF文件预览

【PDF.js】PDF文件预览 一、PDF.js二、PDF.js 下载1、下载PDF.js2、在项目中引入3、屏蔽跨域错误 三、项目中使用四、说明五、实现效果 使用PDFJS实现pdf文件的预览&#xff0c;支持预览指定页、关键词搜索、缩略图、页面尺寸调整等等。 一、PDF.js 官方地址 文档地址 二、PD…

JVM、maven、Nexus

一、jvm简介 1.应用程序申请内存时出现的三种情况&#xff1a; ①OOM:内存溢出&#xff0c;是指应用系统中存在无法回收的内存或使用的内存过多&#xff0c;最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了&#xff0c;系统会提示内存溢出&#xff0c…

react query 学习笔记

文章目录 react query 学习笔记查询客户端 QueryClient获取查询客户端 useQueryClient异步重新请求数据 queryClient.fetchQuery /使查询失效 queryClient.invalidateQueries 与 重新请求数据queryClient.refetchQueries 查询 QueriesuseQuery查询配置对象查询的键值 Query Key…

最前沿・量子退火建模方法(1) : subQUBO讲解和python实现

前言 量子退火机在小规模问题上的效果得到了有效验证&#xff0c;但是由于物理量子比特的大规模制备以及噪声的影响&#xff0c;还没有办法再大规模的场景下应用。 这时候就需要我们思考&#xff0c;如何通过软件的方法怎么样把大的问题分解成小的问题&#xff0c;以便通过现在…

模型 洛萨达比例

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。积极和消极的平衡&#xff0c;左右着你们的关系。 1 洛萨达比例的应用 1.1 企业团队管理之洛萨达比例的应用 一个软件开发公司的团队经理注意到团队的士气和生产力有所下降。此时洛萨达比例是在2.9:…

故障诊断 | Matlab实现基于小波包结合鹈鹕算法优化卷积神经网络DWT-POA-CNN实现电缆故障诊断算法

故障诊断 | Matlab实现基于小波包结合鹈鹕算法优化卷积神经网络DWT-POA-CNN实现电缆故障诊断算法 目录 故障诊断 | Matlab实现基于小波包结合鹈鹕算法优化卷积神经网络DWT-POA-CNN实现电缆故障诊断算法分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现基于小波…

关于机器学习/深度学习的一些事-答知乎问(二)

进化算法与深度强化学习算法结合如何进行改进&#xff1f; &#xff08;1&#xff09;进化算法普遍存在着样本效率低下的问题&#xff0c;虽然其探索度较高&#xff0c;但其本质为全局随机性搜索&#xff0c;需要在整个回合结束后才能更新其种群&#xff0c;而深度强化学习在每…

Linux系统——Elasticsearch企业级日志分析系统

目录 前言 一、ELK概述 1.ELK简介 2.ELK特点 3.为什么要使用ELK 4.完整日志系统基本特征 5.ELK工作原理 6.Elasticsearch介绍 6.1Elasticsearch概述 6.2Elasticsearch核心概念 7.Logstash介绍 7.1Logstash简介 7.2Logstash主要组件 8.Kibana介绍 8.1Kibana简介 …

爬取学习强国视频小示例

因为需要爬取的视频数量并不是很大&#xff0c;总共需要将131个视频下载下来&#xff0c;所以就直接去手动找找视频的地址和名称保存下来的。由于页面是动态加载的&#xff0c;所以我们无法在网站源码中直接找到视频的超链接。设想是可以用Selenium模拟浏览器点击进行动态加载获…

Java基础(一)--语法入门

文章目录 第一章、语法入门一、Java简介1、JVM2、Java程序执行过程3、JDK4、JRE5、JDK、JRE和JVM三者关系 二、Java常量与变量1、标识符2、关键字3、保留字4、变量5、数据类型6、常量 三、运算符1、算术运算符2、赋值运算符3、关系运算符4、逻辑运算符5、条件运算符6、运算符的…

SpringMVC(一)【入门】

前言 学完了大数据基本组件&#xff0c;SpringMVC 也得了解了解&#xff0c;为的是之后 SpringBoot 能够快速掌握。SpringMVC 可能在大数据工作中用的不多&#xff0c;但是 SSM 毕竟是现在就业必知必会的东西了。SpringBoot 在数仓开发可能会经常用到&#xff0c;所以不废话学吧…