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

【C++ 进阶】第 1 章:[C 语言基础] C 语言概述与数据类型

目录

一、C 语言的概述 

(1)计算机结构组成

(2)计算机系统组成 

(3)ASCII 码

(4)计算机中的数制及其转换

(5)程序与指令 

(6)语言的层次划分

(7)主流语言进化史

(8)IDE - VisualStudio 2022 简介

(9)C 语言是面向过程的编程语言

(10)思维导图

(11)详细知识汇总 

二、C 语言的数据类型、运算符与表达式 

(1)变量的定义

(2)数据类型 

(3)常量和符号常量

(4)算术表达式 

(5)运算符的优先级 

(6)运算符的结合性

(7)自增、自减运算符 

(8)思维导图

(9)详细知识汇总 




一、C 语言的概述 

(1)计算机结构组成


(2)计算机系统组成 


(3)ASCII 码


(4)计算机中的数制及其转换

为了区分各种计数制的数据,经常采用以下两种方法进行书写表达:

① 在数字后面加写相应的英文字母作为标识,如:    

  • B(Binary)表示二进制数     
  • O(Octonary)表示八进制数     
  • D(Decimal)表示十进制数,通常其后缀可以省略
  • H(Hexadecimal)表示十六进制数

② 在括号外面加数字下标,此种方法比较直观,如:

  • 二进制的 11010011 可以写成(11010011)₂。


(5)程序与指令 

指令是对计算机进行程序控制的最小单位

所有的指令的集合称为计算机的指令系统

电脑是 X86,手机是 ARM。 


(6)语言的层次划分


(7)主流语言进化史


(8)IDE - VisualStudio 2022 简介

【C++】win 10 / win 11:Visual Studio 2022 社区版免费下载与安装https://gusanshang.blog.csdn.net/article/details/131277774


(9)C 语言是面向过程的编程语言


(10)思维导图


(11)详细知识汇总 

【C 程序设计】学习导论:C 语言简介、C 知识点思维导图https://gusanshang.blog.csdn.net/article/details/131941390
【高级语言程序设计(一)】第 1 章:概述https://gusanshang.blog.csdn.net/article/details/121674724

【高级语言程序设计(一)】第 2 章:C 语言基础知识https://gusanshang.blog.csdn.net/article/details/129847181

【C++ 程序设计】第 1 章:C++ 语言简介https://gusanshang.blog.csdn.net/article/details/130904977【C++】win 10 / win 11:Visual Studio 2022 社区版免费下载与安装https://gusanshang.blog.csdn.net/article/details/131277774



二、C 语言的数据类型、运算符与表达式 

(1)变量的定义

① 程序中使用的各种变量都应预先加以定义,即先定义,后使用

② 对变量的定义可以包括三个方面:

  • 数据类型
  • 存储类型
  • 作用域

③ 所谓数据类型是按被定义变量的性质,表示形式,占据存储空间的多少,构造特点来划分的。

④ 在C语言中,数据类型可分为:

  • 基本数据类型
  • 构造数据类型
  • 指针类型
  • 空类型 

(2)数据类型 

类型说明符

字节

数值范围

字符型

char

1

字符集

基本整型

int

4

-3276832767

短整型

short int

2

-3276832767

长整型

long int

4

-214783648214783647

无符号型

unsigned

4

065535

无符号长整型

unsigned long

4

04294967295

单精度实型

float

4

3/4E-383/4E+38

双精度实型

double

8

1/7E-3081/7E+308


(3)常量和符号常量

在程序执行过程中,其值不发生改变的量称为常量。

② 直接常量 (字面常量):

  • 整型常量:12、0、-3
  • 实型常量:4.6、-1.23
  • 字符常量:‘a’、‘b’

③ 标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。 


(4)算术表达式 

① 算术表达式:用算术运算符和括号将运算对象(也称操作数)连接起来的、 符合 C 语法规则的式子。

② 以下是算术表达式的例子:

  • a+b
  • (a*2)/c
  • (x+r)*8-(a+b)/7
  • ++i
  • sin(x)+sin(y)
  • (++i)-(j++)+(k--) 

(5)运算符的优先级 

运算符的优先级:

  • C语言中,运算符的运算优先级共分为 15 级。
  • 1级最高,15级最低。
  • 在表达式中,优先级较高的先于优先级较低的进行运算。
  • 而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。

(6)运算符的结合性

运算符的结合性:C语言中各运算符的结合性分为两种,即左结合性 (自左至右) 和右结合性 (自右至左)。

左结合性

  • 例如算术运算符的结合性是自左至右,即先左后右。
  • 如有表达式 x-y+z 则 y 应先与 “-” 号结合,执行 x-y 运算,然后再执行 +z 的运算。
  • 这种自左至右的结合方向就称为 “左结合性”。

② 右结合性

  • 而自右至左的结合方向称为 “右结合性”。
  • 最典型的右结合性运算符是赋值运算符。
  • 如 x=y=z,由于 “=” 的右结合性,应先执行 y=z 再执行 x=(y=z) 运算。
  • C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。 

(7)自增、自减运算符 

自增1,自减1运算符:

  • 自增 1 运算符记为 “++”,其功能是使变量的值自增 1。
  • 自减 1 运算符记为   “--”,其功能是使变量值自减 1。
  • 自增 1,自减 1 运算符均为单目运算,都具有右结合性。

② 可有以下几种形式:     

  • ++i  i 自增 1 后再参与其它运算
  • --i    i 自减 1 后再参与其它运算
  • i++  i 参与运算后,i 的值再自增 1
  • i--    i 参与运算后,i 的值再自减 1

在理解和使用上容易出错的是 i++ 和 i-- 。

特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。 


(8)思维导图


(9)详细知识汇总 

【高级语言程序设计(一)】第 3 章:数据类型、运算符和表达式https://gusanshang.blog.csdn.net/article/details/129891802

相关文章:

【C++ 进阶】第 1 章:[C 语言基础] C 语言概述与数据类型

目录 一、C 语言的概述 (1)计算机结构组成 (2)计算机系统组成 (3)ASCII 码 (4)计算机中的数制及其转换 (5)程序与指令 (6)语…...

点击图片1.全屏阅览2.下载3.关闭 纯纯html css js

要实现图片点击全屏预览的功能&#xff0c;可以使用JavaScript和CSS来实现。以下是一个简单的示例代码&#xff1a; html <!DOCTYPE html> <html> <head><meta charsett"UTF-8"><title>图片点击全屏预览</title><style>…...

科技项目验收测试:验证软件产品功能与性能的有效手段

科技项目验收测试是验证软件产品功能与性能的重要手段&#xff0c;在项目开发中起到了至关重要的作用。本文将从产品质量、需求验证、性能测试等方面&#xff0c;探讨科技项目验收测试的有效手段。 1、产品质量保证是验收测试的核心 科技项目验收测试的核心目标是验证软件产品…...

Spring MVC学习笔记,包含mvc架构使用,过滤器、拦截器、执行流程等等

&#x1f600;&#x1f600;&#x1f600;创作不易&#xff0c;各位看官点赞收藏. 文章目录 Spring MVC 习笔记1、Spring MVC demo2、Spring MVC 中常见注解3、数据处理3.1、请求参数处理3.2、响应数据处理 4、RESTFul 风格5、静态资源处理6、HttpMessageConverter 转换器7、过…...

【LeetCode 算法】Linked List Cycle 环形链表

文章目录 Linked List Cycle 环形链表问题描述&#xff1a;分析代码哈希快慢指针 Tag Linked List Cycle 环形链表 问题描述&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达…...

RedHat7.9安装mysql8.0.32 ↝ 二进制方式

RedHat7.9安装mysql8.0.32 ↝ 二进制方式 一、rpm方式安装1、检查是否安装了mariadb2、下载mysqlmysql8.0.323、上传解压4、创建安装目录&#xff0c;拷贝解压后的文件至安装目录/usr/local/mysql8.0/5、创建相关目录&#xff0c;开始安装6、创建mysql组和用户7、更改安装目录归…...

数据库面试题题

题干&#xff1a; -- 子查询 CREATE TABLE emp( empno INT, ename VARCHAR(50), job VARCHAR(50), mgr INT, hiredate DATE, sal DECIMAL(7,2), comm DECIMAL(7,2), deptno INT ) ; INSE…...

瑞吉外卖项目 基于spring Boot+mybatis-plus开发 超详细笔记,有源码链接

源码地址&#xff1a;https://gitee.com/programmer-xiao-kai/reggie_tack_out 前置知识&#xff1a; Java基础知识Java Web vueSpring BootSSMMaven 软件开发流程 角色分工 项目经理:对整个项目负责&#xff0c;任务分配、把控进度产品经理:进行需求调研&#xff0c;输出需…...

Redis Cluster 在Spring中遇到的问题

Redis集群配置可能会在运行时更改。可以添加新节点&#xff0c;可以更改特定插槽的主节点。还有可能因为master宕机或网络抖动等原因&#xff0c;引起了主从切换。 无法感知集群槽位变化 SpringBoot2.x 开始默认使用的 Redis 客户端由 Jedis 变成了 Lettuce&#xff0c;但是当…...

linux远程桌面管理工具 xrdp

Xrdp 是一个微软远程桌面协议&#xff08;RDP&#xff09;的开源实现&#xff0c;它允许你通过图形界面控制远程系统。通过 RDP&#xff0c;你可以登录远程机器&#xff0c;并且创建一个真实的桌面会话&#xff0c;就像你登录本地机器一样。 如何在Ubuntu 20.04 上安装 Xrdp 服…...

硬件-8-操作系统的历史

操作系统的最强入门科普&#xff08;Unix/Linux篇&#xff09; 操作系统的发展史&#xff08;DOS/Windows篇&#xff09; Mac操作系统进化史 手机操作系统的沉浮往事&#xff08;上&#xff09; 手机操作系统的沉浮往事&#xff08;下&#xff09; 1 操作系统种类 我们天天都…...

self.register_buffer()中的值发生变化

PyTorch中定义模型时&#xff0c;有时候会遇到self.register_buffer(name, Tensor)的操作&#xff0c;该方法的作用是定义一组参数&#xff0c;该组参数的特别之处在于&#xff1a;模型训练时不会更新&#xff08;即调用 optimizer.step() 后该组参数不会变化&#xff0c;只可人…...

[Tools: Pycharm] Bug合集

1. Debug mode&#xff1a;Pycharm不显示变量值&#xff08;Unable to display frame variables&#xff09;&#xff1b;在python console中交互不输出值 选择Gevent compatible&#xff1a;File > Settings > Build, Execution, Deployment > Python Debugger >…...

【JAVASE】循环结构

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈Java &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 循环 1. 循环结构1.1 while 循环1.2 bre…...

NoSQL之Redis配置使用

目录 一、关系数据库与非关系型数据库 1.1.关系型数据库的概述 1.2关系型数据库的优缺点 1.2.1优点 1.2.2缺点 1.3.非关系型数据库的概述 二.关系数据库与非关系型数据库的区别 2.1数据存储方式不同 2.2扩展方式不同 2.3对事务性的支持不同 2.4非关系型数据库产生背景 2…...

Ansible最佳实践之Playbook使用过滤器处理网络地址

写在前面 使用过滤器检查、验证和操作包含网络信息的变量理解不足小伙伴帮忙指正 傍晚时分&#xff0c;你坐在屋檐下&#xff0c;看着天慢慢地黑下去&#xff0c;心里寂寞而凄凉&#xff0c;感到自己的生命被剥夺了。当时我是个年轻人&#xff0c;但我害怕这样生活下去&#xf…...

测试常见前端bug

目录 协作 测试方法 标签&#xff1a;标签 内容/ref/ 判断 arr&&arr.length 交互 样式不生效&#xff1a;devtools查找&#xff0c;编译前的标签&#xff0c;运行时不一定存在 可交互的需要提示 hover样式 没有交互逻辑&#xff0c;就不要设置交互 无法交互…...

【Python数据分析】Python常用内置函数(一)

&#x1f389;欢迎来到Python专栏~Python常用内置函数&#xff08;一&#xff09; ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;Python学习专栏 文章作者技术和水平有限&#xff0c;如果文…...

OpenCV图像处理-图像分割-MeanShift

MeanShift 1. 基本概念2.代码示例 1. 基本概念 MeanShift严格说来并不是用来对图像进行分割的&#xff0c;而是在色彩层面的平滑滤波。它会中和色彩分布相近的颜色&#xff0c;平滑色彩细节&#xff0c;侵蚀掉面积较小的的颜色区域&#xff0c;它以图像上任意一点P为圆心&…...

【Rust 基础篇】Rust Trait 实现:灵活的接口抽象

导言 Rust是一种以安全性和高效性著称的系统级编程语言&#xff0c;其设计哲学是在不损失性能的前提下&#xff0c;保障代码的内存安全和线程安全。为了实现这一目标&#xff0c;Rust引入了"所有权系统"、"借用检查器"等特性&#xff0c;有效地避免了常见…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址&#xff1a;Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址&#xff08;如 10.244.1.2&#xff09;无特殊名称&#xff1a;在 Kubernetes 中&#xff0c;它通常被称为 “Pod IP” 或 “容器 IP”生命周期&#xff1a;与 Pod …...