当前位置: 首页 > 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;
}

在这里插入图片描述

相关文章:

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

HelloWorld #include <iostream>using namespace std;int main() {// 打印cout << "Hello,World!" << endl;return 0; }c/c文件和关系 c和c是包含关系&#xff0c;c相当于是c的plus版本c的编译器也可以编译c语言c文件.cpp结尾.h为头文件.c为c语言…...

什么是生成式AI?有哪些特征类型

生成式AI是人类一种人工智能技术&#xff0c;可以生成各种类型的内容&#xff0c;包括文本、图像、音频和合成数据。那么什么是人工智能&#xff1f;人工智能和机器学习之间的区别是什么&#xff1f;有哪些技术特征&#xff1f; 人工智能是一门学科&#xff0c;是计算机科学的一…...

《Linux C/C++服务器开发实践》之第7章 服务器模型设计

《Linux C/C服务器开发实践》之第7章 服务器模型设计 7.1 I/O模型7.1.1 基本概念7.1.2 同步和异步7.1.3 阻塞和非阻塞7.1.4 同步与异步和阻塞与非阻塞的关系7.1.5 采用socket I/O模型的原因7.1.6&#xff08;同步&#xff09;阻塞I/O模型7.1.7&#xff08;同步&#xff09;非阻…...

SSH穿透ECS访问内网RDS数据库

处于安全考虑&#xff0c;RDS一般只会允许指定的IP进行访问&#xff0c;而我们开发环境的IP往往是动态的&#xff0c;每次IP变动都需要去修改RDS的白名单&#xff0c;为我们的工作带来很大的不便。 那么如何去解决这个问题&#xff1f; 假如我们有一台ESC服务器&#xff0c;E…...

python 有哪些函数

Python内置的函数及其用法。为了方便记忆&#xff0c;已经有很多开发者将这些内置函数进行了如下分类&#xff1a; 数学运算(7个) 类型转换(24个) 序列操作(8个) 对象操作(7个) 反射操作(8个) 变量操作(2个) 交互操作(2个) 文件操作(1个) 编译执行(4个) 装饰器(3个) …...

ubuntu web端远程桌面控制

本方案采用x11vncnovnc来实现x11vnc的安装和配置可以参考UOS搭建VNC及连接教程_uos安装vnc-CSDN博客;并把/lib/systemd/system/x11vnc.service内容修改为如下: [Unit]DescriptionStart x11vnc at startup.Aftermulti-user.target[Service]TypesimpleExecStart/usr/bin/x11vnc …...

PCL 点到三角形的距离(3D)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 给定三角形ABC和点P,设Q为描述ABC上离P最近的点。求Q的一个方法:如果P在ABC内,那么P的正交投影点就是离P最近的点Q。如果P投影在ABC之外,最近的点则必须位于它的一条边上。在这种情况下,Q可以通过计算线段AB、…...

C# wpf 嵌入外部程序

WPF Hwnd窗口互操作系列 第一章 嵌入Hwnd窗口 第二章 嵌入WinForm控件 第三章 嵌入WPF控件 第四章 嵌入外部程序&#xff08;本章&#xff09; 第五章 底部嵌入HwndHost 文章目录 WPF Hwnd窗口互操作系列前言一、如何实现&#xff1f;1、定义属性2、进程嵌入&#xff08;1&…...

【ELK】ELK企业级日志分析系统

搜集日志&#xff1b;日志处理器&#xff1b;索引平台&#xff1b;提供视图化界面&#xff1b;客户端登录 日志收集者&#xff1a;负责监控微服务的日志&#xff0c;并记录 日志存储者&#xff1a;接收日志&#xff0c;写入 日志harbor&#xff1a;负责去连接多个日志收集者&am…...

详细的讲一下java的接口回调

Java的接口回调是一种允许程序在特定事件发生时通知其他对象的机制。这是观察者设计模式的一种实现方式&#xff0c;常用于实现事件监听和异步处理。接口回调允许对象之间进行松耦合的交互&#xff1a;一个对象只知道它可以调用另一个对象的方法&#xff0c;但它不需要知道这个…...

如何将powerpoint(PPT)幻灯片嵌入网页中在线预览、编辑并保存到服务器?

猿大师办公助手不仅可以把微软Office、金山WPS和永中Office的Word文档、Excel表格内嵌到浏览器网页中实现在线预览、编辑保存等操作&#xff0c;还可以把微软Office、金山WPS和永中Office的PPT幻灯片实现网页中在线预览、编辑并保存到服务器。 猿大师办公助手把本机原生Office…...

[Java基础揉碎]日期类

目录 日期类 第一代日期类 第二代日期类 第三代日期类 >前面两代日期类的不足分析 针对以上问题Java在jdk8加入了以下方法 jdk8的时间格式化 时间戳 第三代日期类更多方法 日期类 [知道怎么查,怎么用即可&#xff0c;不用每个方法都背] 第一代日期类 1) Date: …...

4.10作业

//.h文件#ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> //定时器事件类 #include <QTime> //时间类 #include <QString> #include <QPushButton> //按钮类 #include <QLabel> //标签类 #include <QT…...

Hive概述与基本操作

一、Hive基本概念 1.什么是hive? &#xff08;1&#xff09;hive是数据仓库建模的工具之一 &#xff08;2&#xff09;可以向hive传入一条交互式的sql,在海量数据中查询分析得到结果的平台 2.Hive简介 Hive本质是将SQL转换为MapReduce的任务进行运算&#xff0c;底层由HDFS…...

安装 FFmpeg

安装 FFmpeg 1. Install FFmpeg On Ubuntu2. Install FFmpeg On Ubuntu 16.042.1. First add the repository2.2. Update the newly added repository2.3. Now install the ffmpeg2.4. For opening the ffmpeg for that type ffpmeg on the terminal 3. Uninstall ffmpegRefere…...

18、差分

差分 题目描述 输入一个长度为n的整数序列。 接下来输入m个操作&#xff0c;每个操作包含三个整数l, r, c&#xff0c;表示将序列中[l, r]之间的每个数加上c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数n和m。 第二行包含n个整数&#xff0c;表示整…...

13 指针(上)

指针是 C 语言最重要的概念之一&#xff0c;也是最难理解的概念之一。 指针是C语言的精髓&#xff0c;要想掌握C语言就需要深入地了解指针。 指针类型在考研中用得最多的地方&#xff0c;就是和结构体结合起来构造结点(如链表的结点、二叉树的结点等)。 本章专题脉络 1、指针…...

AI 对话完善【人工智能】

AI 对话【人工智能】 前言版权开源推荐AI 对话v0版本&#xff1a;基础v1版本&#xff1a;对话数据表tag.jsTagController v2版本&#xff1a;回复中textarea.jsChatController v3版本&#xff1a;流式输出chatLast.jsChatController v4版本&#xff1a;多轮对话QianfanUtilChat…...

利用数组储存表格数据

原理以及普通数组储存表格信息 在介绍数组的时候说过&#xff0c;数组能够用来储存任何同类型的数据&#xff0c;这里的意思就表明只要是同一个类型的数组据就可以储存到一个数组中。那么在表格中同一行的数据是否可以储存到同一个数组中呢&#xff1f;答案自然是可以&#xff…...

[数据概念|数据技术]智能合约如何助力数据资产变现

“ 区块链上数据具有高可信度&#xff0c;智能合约将区块链变得更加智能化&#xff0c;以支持企业场景。” 之前鼹鼠哥已经发表了一篇文章&#xff0c;简单介绍了区块链&#xff0c;那么&#xff0c;智能合约又是什么呢&#xff1f;它又是如何助力数据资产变现的呢&#xff1f;…...

JS中的常见二进制数据格式

格式描述用途示例ArrayBuffer固定长度的二进制数据缓冲区&#xff0c;不直接操作具体的数据&#xff0c;而是通过类型数组或DataView对象来读写用于存储和处理大量的二进制数据&#xff0c;如文件、图像等let buffer new ArrayBuffer(16);TypedArray基于ArrayBuffer对象的视图…...

uniapp开发h5端使用video播放mp4格式视频黑屏,但有音频播放解决方案

mp4格式视频有一些谷歌播放视频黑屏&#xff0c;搜狗浏览器可以正常播放 可能和视频的编码格式有关&#xff0c;谷歌只支持h.264编码格式的视频播放 将mp4编码格式修改为h.264即可 转换方法&#xff1a; 如果是自己手动上传文件可以手动转换 如果是后端接口调取的地址就需…...

Hive的分区与排序

一、Hive分区 1.引入&#xff1a; 在大数据中&#xff0c;最常见的一种思想就是分治&#xff0c;我们可以把大的文件切割划分成一个个的小的文件&#xff0c;这样每次操作一个个小的文件就会很容易了&#xff0c;同样的道理&#xff0c;在hive当中也是支持这种思想的&#xff…...

Objective-C学习笔记(内存管理、property参数)4.9

1.引用计数器retainCount&#xff1a;每个对象都有这个属性&#xff0c;默认值为1&#xff0c;记录当前对象有多少人用。 为对象发送一条retain/release消息&#xff0c;对象的引用计数器加/减1&#xff0c;为对象发一条retainCount,得到对象的引用计数器值&#xff0c;当计数器…...

C语言进阶课程学习记录-第29课 - 指针和数组分析(下)

C语言进阶课程学习记录-第29课 - 指针和数组分析&#xff08;下&#xff09; 数组名与指针实验-数组形式转换实验-数组名与指针的差异实验-转化后数组名加一的比较实验-数组名作为函数形参小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课…...

一起学习python——基础篇(13)

前言&#xff0c;python编程语言对于我个人来说学习的目的是为了测试。我主要做的是移动端的开发工作&#xff0c;常见的测试主要分为两块&#xff0c;一块为移动端独立的页面功能&#xff0c;另外一块就是和其他人对接工作。 对接内容主要有硬件通信协议、软件接口文档。而涉…...

SOCKS代理概述

在网络技术的广阔领域中&#x1f310;&#xff0c;SOCKS代理是一个核心组件&#xff0c;它在提升在线隐私保护&#x1f6e1;️、实现匿名通信&#x1f3ad;以及突破网络访问限制&#x1f6ab;方面发挥着至关重要的作用。本文旨在深入探讨SOCKS代理的基础&#xff0c;包括其定义…...

AI助力M-OFDFT实现兼具精度与效率的电子结构方法

编者按&#xff1a;为了使电子结构方法突破当前广泛应用的密度泛函理论&#xff08;KSDFT&#xff09;所能求解的分子体系规模&#xff0c;微软研究院科学智能中心的研究员们基于人工智能技术和无轨道密度泛函理论&#xff08;OFDFT&#xff09;开发了一种新的电子结构计算框架…...

【数据结构】单链表(一)

上一篇【数据结构】顺序表-CSDN博客 我们了解了顺序表&#xff0c;但是呢顺序表涉及到了一些问题&#xff0c;比如&#xff0c;中间/头部的插入/删除&#xff0c;时间复杂度为O(N);增容申请空间、拷贝、释放旧空间会有不小的消耗&#xff1b;增容所浪费的空间... 我们如何去解…...

SCI一区 | Matlab实现INFO-TCN-BiGRU-Attention向量加权算法优化时间卷积双向门控循环单元注意力机制多变量时间序列预测

SCI一区 | Matlab实现INFO-TCN-BiGRU-Attention向量加权算法优化时间卷积双向门控循环单元注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现INFO-TCN-BiGRU-Attention向量加权算法优化时间卷积双向门控循环单元注意力机制多变量时间序列预测预测效果基本介绍模型描述程…...