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

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...