【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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/50254.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

菜鸡shader:L13 渐隐渐显的UV动画

文章目录 SD部分Shader代码部分 呃呃,这是目前我学习庄懂AP01课程的最后一节了,我看了一下21集之后的内容是关于LightingMap,目前感觉还用不到,加上之前参与过一个项目里面也有用到LightingMap,也算了解过,…

【深度学习】【Image Inpainting】Generative Image Inpainting with Contextual Attention

Generative Image Inpainting with Contextual Attention DeepFillv1 (CVPR’2018) 论文:https://arxiv.org/abs/1801.07892 论文代码:https://github.com/JiahuiYu/generative_inpainting 论文摘录 文章目录 效果一览摘要介绍论文贡献相关工作Image…

Unity XML1——XML基本语法

一、XML 概述 ​ 全称:可拓展标记语言(EXtensible Markup Language) ​ XML 是国际通用的,它是被设计来用于传输和存储数据的一种文本特殊格式,文件后缀一般为 .xml ​ 我们在游戏中可以把游戏数据按照 XML 的格式标…

23款奔驰GLS450加装原厂香氛负离子系统,清香宜人,久闻不腻

奔驰原厂香氛合理性可通过车内空气调节组件营造芳香四溢的怡人氛围。通过更换手套箱内香氛喷雾发生器所用的香水瓶,可轻松选择其他香氛。香氛的浓度和持续时间可调。淡雅的香氛缓缓喷出,并且在关闭后能够立刻散去。车内气味不会永久改变,香氛…

maven编译报错

参考链接:mvn打包No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK_51CTO博客_mvn打包命令 在执行 yum install -y java-1.8.0-opensdk命令后,使用maven去编译打包,结果报错, …

STM32MP157驱动开发——按键驱动(工作队列)

文章目录 “工作队列”机制:内核函数work_struct 结构体定义 work使用 work :schedule_workworkqueue 其他函数 工作队列方式的按键驱动程序(stm32mp157)编程思路button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试 “工作队列”机制&#xff1…

找不到vcruntime140.dll无法继续执行代码怎么办?(详解)

1.vcruntime140.dll是什么?有什么作用? vcruntime140.dll是Windows操作系统中的一个动态链接库文件,它属于Microsoft Visual C Redistributable的一部分。DLL是Dynamic Link Library的缩写,它包含了一系列函数和资源,…

Linux 系列 常见 快捷键总结

强制停止 Ctrl C 退出程序、退出登录 Ctrl D 等价 exit 查看历史命令 history !命令前缀,自动匹配上一个命令 (历史命令中:从最新——》最老 搜索) ctrl r 输入内去历史命令中检索 # 回车键可以直接执行 ctrl a 跳到命令开头 …

【Golang】Golang进阶系列教程--Go 语言切片是如何扩容的?

文章目录 前言声明和初始化扩容时机源码分析go1.17go1.18内存对齐 总结 前言 在 Go 语言中,有一个很常用的数据结构,那就是切片(Slice)。 切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装…

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端

目录 一、前言 二、管理后台 1.登录 2.登录成功,进入欢迎页 ​编辑 3.视频分类管理 4. 视频标签管理 5.视频管理 6.评论管理 ​编辑 7.用户管理 8.字典管理 (类似于后端的枚举) 9.参数管理(富文本录入) 10.管…

第12章 Linux 实操篇-Linux磁盘分区、挂载

12.1 Linux 分区 12.1.1 原理介绍 (1) Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构, Linux中每个分区都是用来组成整个文件系统的一部分。 (2) Linux采用了一种叫“载入”的处理方法,…

LeetCode 75 第十三题(1679)K和数对的最大数目

题目: 示例: 分析: 给一个数组,两个和为K的数为一组,问能凑成几组。 既然一组是两个数,那么我们可以使用双指针分别指向数组首尾,然后再判断能否凑成和为K的组. 在使用双指针寻找之前,我们应当先将数组排序(升序降序都无所谓),…

Python Web开发技巧VII

目录 装饰器inject_serializer 装饰器atomic rebase git 清理add的数据 查看git的当前工作目录 makemigrations文件名称 action(detailTrue, methods["GET"]) 如何只取序列化器的一个字段进行返回 Response和JsonResponse有什么区别 序列化器填表和单字段如…

红黑树与平衡二叉树

文章目录 前言一、平衡二叉树二、红黑树区别 前言 数据库的底层用到了多种树结构,这里简单记录一下红黑树与平衡二叉树。 一、平衡二叉树 满足二叉树。任何节点的两个子树的高度最大差为1。如果对平衡二叉树进行删除和新增,那么会破坏平衡,…

JavaSE - Sting类

目录 一. 字符串的定义 二. String类中的常用方法 1. 比较两个字符串是否相等(返回值是boolean类型) 2. 比较两个字符串的大小(返回值是int类型) 3. 字符串查找 (1)s1.charAt(index) index:下标&…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机当前实时帧率(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来计算相机的实时帧率(C#) Baumer工业相机Baumer工业相机的帧率的技术背景Baumer工业相机的帧率获取方式CameraExplorer如何查看相机帧率信息在BGAPI SDK里通过函数获取相机帧率 Baumer工业相机通过BGA…

剑指 Offer 26. 树的子结构

思路: 先统计B数的非空节点数countB。然后前序遍历A,当遇到A的值和B的第一个值相等时,则进行统计左右结构和值都相等的节点数和sum,如果sum countB,则true。 /*** Definition for a binary tree node.* public class…

CSS 高频按钮样式

矩形与圆角按钮 正常而言&#xff0c;我们遇到的按钮就这两种 -- 矩形和圆角&#xff1a; 它们非常的简单&#xff0c;宽高和圆角和背景色。 <div classbtn rect>rect</div><div classbtn circle>circle</div>.btn {margin: 8px auto;flex-shrink: 0;…

网络设备中的配置文件管理

建立强大网络的第一步是为灾难和网络中断做好准备&#xff0c;许多企业在中断期间遭受损失&#xff0c;因为他们缺乏备份计划并且配置管理不达标&#xff0c;使用配置文件管理工具进行适当的配置文件管理不仅有助于处理网络中断&#xff0c;还有助于优化网络性能。 使用配置文…

Redis 集群部署

Redis 3.0 版本后正式推出 Redis 集群模式,该模式是 Redis 的分布式的解决方案,是一个提供在多个 Redis 节点间共享数据的程序集,且 Redis 集群是去中心化的,它的每个 Master 节点都可以进行读写数据,每个节点都拥有平等的关系,每个节点都保持各自的数据和整个集群的状态…