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.mzph.cn/news/807253.shtml

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

相关文章

c++ 函数进阶

1.函数默认参数 &#xff08;1&#xff09;.函数参数是可以有默认值的&#xff0c;如果某一个参数有默认值&#xff0c;那么从这个参数之后&#xff0c;从左到右&#xff0c;都必须有默认值。 &#xff08;2&#xff09;.函数声明参数有默认值&#xff0c;函数实现中不能有默…

【吊打面试官系列】Java高并发篇 - 什么是Java并发容器的实现?

大家好&#xff0c;我是锋哥。今天分享关于 【什么是Java并发容器的实现&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 什么是Java并发容器的实现&#xff1f; 何为同步容器&#xff1a;可以简单地理解为通过 synchronized 来实现同步的容器&#xff0c;如果有…

绿联 安装MariaDB数据库用于Seatable服务

绿联 安装MariaDB数据库用于Seatable服务 MariaDB MariaDB 是一个流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它是MySQL的一个分支&#xff0c;提供了丰富的功能和性能&#xff0c;适用于各种应用场景。 核心功能 SQL支持: MariaDB完全支持SQL&a…

科大睿智五大关键点解读CMMI认证评估对企业的重要性

CMMI认证作为国际软件行业的主流标准&#xff0c;引起了广泛关注。那么&#xff0c;CMMI认证评估对企业有哪些的重要性&#xff0c;这是企业需要重点考虑的问题&#xff0c;小编今日分享CMMI认证的认证价值&#xff0c;为意向企业做出分析指导&#xff0c;一起来看下吧。 一、…

两款微功耗轨至轨运算放大器芯片 D8541和D8542的芯片描述

D8541和D8542是推出的两款微功耗轨至轨运算放大器芯片&#xff0c;其中D8541为单运放&#xff0c;D8542为双运放&#xff0c;它特别适用于NTC温度采集电路、ADC基准电压电路、有源滤波器、电压跟随器、信号放大器等电路应用&#xff0c;在新能源充电桩、智能充电枪、储能等产品…

一辆汽车的节拍时间是怎样的?

节拍时间&#xff0c;又称 takt time&#xff0c;是德语中“节奏”的意思。在汽车制造业中&#xff0c;它指的是按照客户需求和生产计划&#xff0c;生产一辆汽车所需的时间。这个时间是固定的&#xff0c;它决定了生产线上每个工序的操作速度和节奏&#xff0c;是生产线上所有…

从种子轮到 C 轮:AI 公司商业计划书合集全收录

【AI 大模型时代,AI 公司商业计划书 PPT 的合集】着实出色,满是干货!值得所有创业者珍藏,其中涵盖了种子轮、A 轮、B 轮、C 轮等各阶段。其定位于呈现最新的 AI 创业公司详情及其商业计划书,涉及各个公司的概述、业务模式、市场定位与发展规划等资讯。 初创公司(附带商业…

001 逆向生成

文章目录 maven依赖application.yaml配置数据源代码生成器 maven依赖 pom.xml <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactI…

光子晶体能带分析、能谱计算、光纤模拟计算使用COMSOL仿真

COMSOL Multiphysics是一款强大的多物理场仿真软件&#xff0c;它提供了高效的计算性能和出色的多场耦合分析能力&#xff0c;能够实现精确的数值仿真。在光子晶体能带分析、能谱计算、光纤模态计算以及微腔腔膜求解等方面&#xff0c;COMSOL已经被广泛应用于科学研究以及工程计…

系统监控-硬件资源-内存篇01-整体思路-性能指标-性能工具概览-Buffer/Cache

参考来源&#xff1a;性能优化实战 内存的功能主要用来存储系统和应用程序的指令、数据、缓存等。 内存性能分析整体思路 当你看到系统的剩余内存很低时&#xff0c;是不是就说明&#xff0c;进程一定不能申请分配新内存了呢&#xff1f;当然不是&#xff0c;因为进程可以使…

这4本计算机期刊,含CCF推荐,1个月发表周期,部分期刊剩15篇版面,接受预留

转眼间已进入四月份&#xff0c;正值春景好时节&#xff0c;在踏青赏景之余也别忘了做好科研&#xff08;学业&#xff09;规划。 我方致力于学术论文发表辅导十余年&#xff0c;与100余家国际出版社长期合作&#xff0c;推荐各领域论文至SCI/EI/CNKI收录期刊快速发表&#xf…

SaaS初创企业四大错误

过去十年来&#xff0c;SaaS 初创公司越来越受欢迎。 根据 Statista 的一项研究&#xff0c;全球约有 30,800 家 SaaS 初创公司。 受疫情影响&#xff0c;2020 年 SaaS 初创企业增速出现暂时下滑。 但随着接下来几年新初创公司的出现&#xff0c;这种情况又重新开始。 虽然这…

LeetCode-热题100:416. 分割等和子集

题目描述 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a; nums [1,5,11,5] 输出&#xff1a; true 解释&#xff1a; 数组可以分割成 [1, 5, 5] 和 [11…

【Qt 学习笔记】Qt信号和槽的其他说明及Lambda表达式

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt信号和槽的其他说明及Lambda表达式 文章编号&#xff1a;Qt 学习笔记…

大数据知识合集之数据分析方法论

常用数据分析方法&#xff1a;描述统计、假设检验、信度分析、相关分析、方差分析、回归分析、聚类分析、判别分析、主成分分析、因子分析、时间序列分析等。 1、描述性统计分析 描述性统计分析是通过图表或数学方法&#xff0c;对数据资料进行整理、分析&#xff0c;并对数据…

头歌-机器学习 第16次实验 EM算法

第1关:极大似然估计 任务描述 本关任务:根据本节课所学知识完成本关所设置的选择题。 相关知识 为了完成本关任务,你需要掌握: 什么是极大似然估计; 极大似然估计的原理; 极大似然估计的计算方法。 什么是极大似然估计 没有接触过或者没有听过”极大似然估计“的同学…

开源模型应用落地-chatglm3-6b-zero/one/few-shot-入门篇(五)

一、前言 Zero-Shot、One-Shot和Few-Shot是机器学习领域中重要的概念&#xff0c;特别是在自然语言处理和计算机视觉领域。通过Zero-Shot、One-Shot和Few-Shot学习&#xff0c;模型可以更好地处理未知的情况和新任务&#xff0c;减少对大量标注数据的依赖&#xff0c;提高模型的…

PWM、通信、串口通信、UART、TTL、51单片机串口通信、定时器初值的计算公式

我要成为嵌入式高手之4月8日51单片机第三天&#xff01;&#xff01; ———————————————————————————— PWM 脉冲宽度调制(PWM)&#xff0c;是英文“Pulse Width Modulation”的缩写&#xff0c;简称脉宽调制&#xff0c;是利用微处理器的数字输出来…

护眼台灯怎么选看哪些指标?兼顾性能与性价比护眼灯十大品牌推荐

对于长时间面对电子屏幕的上班族和学业负担重的学生族来说&#xff0c;他们的眼睛承受着巨大压力。加之不良的用眼习惯&#xff0c;导致近视人数不断增加。然而&#xff0c;良好的光线对眼睛健康至关重要。适宜的照明可以提供舒适的环境&#xff0c;减轻眼睛的负担。因此&#…

锂电池升降压转换利器:PW2224转换器,实现3.3V高效持续输出

描述&#xff1a; PW2224是一款专为锂电池供电设备设计的高效单电感降压-升压转换器。这款转换器能够在3V至4.2V的锂电池输入电压范围内工作&#xff0c;实现升降压模式自动切换&#xff0c;稳定输出3.3V电压&#xff0c;并持续提供高达1A的负载电流。此外&#xff0c;PW2224的…