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

news2024/9/30 5:31:04

目录

一、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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Diffusion扩散模型学习3——Stable Diffusion结构解析-以图像生成图像(图生图,img2img)为例

Diffusion扩散模型学习3——Stable Diffusion结构解析-以图像生成图像(图生图,img2img)为例 学习前言源码下载地址网络构建一、什么是Stable Diffusion(SD)二、Stable Diffusion的组成三、img2img生成流程1、输入图片编…

Mysql操作多表查询

多表查询是指在关系型数据库中,通过同时查询多个数据表来检索相关数据的操作。这种查询方式通常用于需要在多个数据表中搜索和比较数据的情况,以获取更完整和准确的结果。 在多表查询中,使用联接(join)操作将多个表连…

【Spring框架】SpringBoot创建和使用

目录 什么是SpringBoot?SpringBoot优点创建SpringBootSpringBoot使用 什么是SpringBoot? Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发的。 SpringBoot优点 1.起步依赖(创建的时候就可以方…

day47-SSM分页

SSM分页(增删改查登录注册) applicationContext.xml中加入mybatis-config.xml路径 mybatis-config.xml Mapper接口 Service接口及其实现类 Mapper.xml page.jsp personDetail.jsp addPerson.jsp updatePerson.jsp login.jsp regist…

DMA传输原理与实现详解(超详细)

DMA(Direct Memory Access,直接内存访问)是一种计算机数据传输方式,允许外围设备直接访问系统内存,而无需CPU的干预。 文章目录 Part 1: DMA的工作原理配置阶段:数据传输阶段: Part 2: DMA数据…

【弹力设计篇】聊聊灾备设计、异地多活设计

单机&集群架构 对于一个高可用系统来说,为了提升系统的稳定性,需要以下常用技术服务拆分、服务冗余、限流降级、高可用架构设计、高可用运维,而本篇主要详细介绍下,高可用架构设计。容灾备份以及同城多活,异地多活…

Python开发之手动实现一维线性插值

Python开发之手动实现一维线性插值 1.线性插值法介绍2.手动实现线性插值3.案例一手动实现线性插值4.使用pandas的插值方法实现要求(推荐) 前言:主要介绍手动实现一维线性插值以及pandas里面的interpolate方法实现线性插值。 1.线性插值法介绍 线性插值法是一种简单…

MySQL中锁的简介——行级锁之 间隙锁 和 临键锁

1.间隙锁演示 2.临键锁演示 间隙锁锁住的是间隙,不包含对应的数据记录,而临键锁既会包含当前这条数据记录,也会锁定该数据记录之前的间隙。间隙锁的目的是防止其他事务插入间隙造成幻读现象。间隙锁是可以共存的,一个事务采用的间…

maven引入本地jar包的简单方式【IDEA】【SpringBoot】

前言 想必点进来看这篇文章的各位,都是已经习惯了Maven从中央仓库或者阿里仓库直接拉取jar包进行使用。我也是🤡🤡。 前两天遇到一个工作场景,对接三方平台,结果对方就是提供的一个jar包下载链接,可给我整…

sqlSugar应用表值函数

一、新建表值函数 TableIntSplit 二、新建类 var employees _sqlSugarClient.Queryable<Employees>().InnerJoin(_sqlSugarClient.SqlQueryable<TableID>("select * from dbo.TableIntSplit(ids,split)").AddParameters(new { ids "1,2", s…

无涯教程-jQuery - Slide方法函数

幻灯片效果可以与show/hide/toggle一起使用。这会将元素滑出视口。 Slide - 语法 selector.hide|show|toggle( "slide", {arguments}, speed ); 这是所有参数的描述- direction - 效果的方向。可以是"左(left)"&#xff0c;"右(right)"&…

C语言第十一课--------操作符的使用与分类-------基本操作

作者前言 作者介绍&#xff1a; 作者id&#xff1a;老秦包你会&#xff0c; 简单介绍&#xff1a; 喜欢学习C语言和python等编程语言&#xff0c;是一位爱分享的博主&#xff0c;有兴趣的小可爱可以来互讨 个人主页::小小页面 gitee页面:秦大大 一个爱分享的小博主 欢迎小可爱们…

解决 tensorflow 出现的 ImportError: Could not find the DLL(s) ‘msvcp140_1.dll‘. 问题

在安装完tensorflow库后出现 问题详述&#xff1a; ImportError: Could not find the DLL(s) msvcp140_1.dll. TensorFlow requires that these DLLs be installed in a directory that is named in your %PATH% environment variable. You may install these DLLs by downlo…

JSP 文件上传

JSP 可以与 HTML form 标签一起使用&#xff0c;来允许用户上传文件到服务器。上传的文件可以是文本文件或图像文件或任何文档。 本章节我们使用 Servlet 来处理文件上传&#xff0c;使用到的文件有&#xff1a; upload.jsp : 文件上传表单。 message.jsp : 上传成功后跳转页…

超聚变和厦门大学助力兴业银行构建智慧金融隐私计算平台,助力信用卡业务精准营销...

兴业银行与超聚变数字技术有限公司、厦门大学携手&#xff0c;发挥产学研用一体化整体优势联合建设&#xff0c;厦门大学提供先进的算法模型及科研能力&#xff0c;超聚变提供产品解决方案及工程能力&#xff0c;兴业银行提供金融实践能力&#xff0c;三方发挥各自领域优势&…

RTPS规范v2.3(中文版)

实时发布订阅协议 DDS互操作性有线协议 &#xff08;DDSI-RTPS&#xff09; 技术规范 V2.3 &#xff08;2019-04-03正式发布&#xff09; https://www.omg.org/spec/DDSI-RTPS/2.3/PDF   目 录 0. 序言&#xff08;关于对象管理组&#xff09; 4 0.1 OMG 4 0.2 OMG规…

C++之浅拷贝和深拷贝总结(一百七十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

【SLAM】A-LOAM 算法部署与测试(Win10 + VMWare + Ubuntu18.04)

基础环境 ubuntu及ROS安装&#xff0c;略&#xff1b;安装完ROS以后&#xff0c;默认已经安装好了PCL和Eigen库&#xff1b; 安装Ceres 下载Ceres源文件&#xff1a;&#xff08; Vmware没有网络&#xff0c;到下面的网址手动下载安装包 &#xff09; - https://github.com…

MyBatis-Plus自定义sql注入器

文章目录 一、前言二、MyBatis-Plus自定义sql注入器功能实现2.1、编写自定义sql类2.2、将自定义sql添加到BaseMapper中2.3、编写自己的sql注入器 一、前言 在日常开发过程中&#xff0c;我们可能会发现 MyBatis-Plus 提供的那些自带的 sql 语句无法满足我们的开发需求&#xf…

Java中注解应用场景

1.Parameter注解 Parameter(names "-browser", description "browser name, supported scope [chrome]", required true) Param注解的用法解析_parameter_fFee-ops的博客-CSDN博客 Public User selectUser(param(“userName”) String name, param(“…