当前位置: 首页 > 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;有效地避免了常见…...

League-Toolkit:重新定义英雄联盟游戏体验的智能助手

League-Toolkit&#xff1a;重新定义英雄联盟游戏体验的智能助手 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit …...

HelixDB部署与运维:从本地开发到生产环境的完整流程

HelixDB部署与运维&#xff1a;从本地开发到生产环境的完整流程 【免费下载链接】helix-db HelixDB is a powerful, graph-vector database built entirely in Rust for millisecond query latency and ease of use. 项目地址: https://gitcode.com/gh_mirrors/he/helix-db …...

C#处理复杂JSON数据:Newtonsoft.Json多级嵌套反序列化实战(附避坑指南)

C#处理复杂JSON数据&#xff1a;Newtonsoft.Json多级嵌套反序列化实战&#xff08;附避坑指南&#xff09; 在当今数据驱动的开发环境中&#xff0c;JSON已成为事实上的数据交换标准。特别是对于C#开发者而言&#xff0c;处理来自API响应、配置文件或NoSQL数据库的复杂JSON结构…...

基于大数据技术的产品评价分析系统设计与实现

前言本研究聚焦于设计与实现一种基于大数据技术的产品评价分析系统&#xff0c;通过构建多层架构体系与融合多元技术方法&#xff0c;为企业决策提供智能化支撑。 研究采用分层架构设计理念&#xff0c;将系统划分为数据采集、存储、处理、分析与展示五大模块。数据采集层综合运…...

终极Win11Debloat优化指南:简单4步让你的Windows 11飞起来

终极Win11Debloat优化指南&#xff1a;简单4步让你的Windows 11飞起来 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter an…...

Beyond Compare 5 永久激活完全指南:从入门到精通

Beyond Compare 5 永久激活完全指南&#xff1a;从入门到精通 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 一、问题诊断&#xff1a;Beyond Compare 5授权痛点解析 1.1 评估期结束的功能限制…...

CentOS 7.9 上部署 ELK 9.2.0 踩坑实录:从系统优化到证书配置的完整避坑指南

CentOS 7.9 上部署 ELK 9.2.0 实战指南&#xff1a;系统调优与安全配置全解析 在当今数据驱动的时代&#xff0c;企业日志管理已成为运维工作的核心环节。ELK Stack&#xff08;Elasticsearch、Logstash、Kibana&#xff09;作为开源日志分析解决方案的标杆&#xff0c;其9.2.0…...

Arcgis符号化实战:用矢量文件制作专业级统计地图(附最新配色方案)

ArcGIS符号化实战&#xff1a;用矢量文件制作专业级统计地图&#xff08;附最新配色方案&#xff09; 当你面对一叠枯燥的表格数据时&#xff0c;是否想过如何让这些数字"活"起来&#xff1f;统计地图正是将抽象数据转化为直观视觉表达的利器。作为地理信息系统领域的…...

5个步骤掌握MelonLoader:让Unity游戏模组开发变得轻松有趣

5个步骤掌握MelonLoader&#xff1a;让Unity游戏模组开发变得轻松有趣 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 你是否曾…...

Qwen3-VL-WEBUI部署避坑指南:从Docker到网页访问全流程

Qwen3-VL-WEBUI部署避坑指南&#xff1a;从Docker到网页访问全流程 1. 部署前的准备工作 1.1 硬件与系统要求 在开始部署Qwen3-VL-WEBUI之前&#xff0c;请确保您的设备满足以下最低配置要求&#xff1a; GPU&#xff1a;NVIDIA RTX 4090D&#xff08;24GB显存&#xff09;…...