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

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

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

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

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...