C语言复习总结(含代码例程)

数据类型

基本类型:字符型、整型、浮点型、双精度浮点型
构造类型:数组、指针、结构体、共用体和枚举

字符型:

类型表示: (signed) char = char
-- 有符号 char
unsigned char
-- 无符号 char
类型大小: 8 = 1 个字节
二进制变化: 0000 0000 ~ 1111 1111 = 256 种变化情况
无符号:数字变化 -- 0~255 = 0~2^8-1
有符号:数字变化 -- -128~127 = -2^7 ~ 2^7-1
类型意义:存放字符型数据( ASCII 码表) -- 以某些数字代表某种符号。

整型:

类型表示: int
(signed) int -- 有符号整型
unsigned int -- 无符号整型
short -- 短整型
long -- 长整型
类型大小: int -- 32 位以上的处理器, int 4 个字节,低于 16 位(嵌入式存在 89c51 单片机( 8 位)), 占 2 个字节 -- int 随着芯片的类型,而改变。
short -- 短整型 -------------占 2 个字节
long -- 长整型 --------------占 4 个字节

浮点型:

类型表示: float
类型大小: 4 个字节 -- ------ 精度:小数点后 6
类型意义:存放小数 

双精度浮点型:

类型表示: double
类型大小: 8 个字节 ----------- 精度:小数点后 12
类型意义:存放小数

变量和常量

关键字与标识符

标识符:使用一些字符代表某个具体的事物(名字)。
组成:数字( 0~9 )、字母( a~z A~Z )和下滑线( _ )组成。
注意: 1. 数字不可以放开头
           2.区分大小写
           3.不能与关键字相同

32个关键字

数据关键字12个:char,double,float,enum,unsigned ,int,long,short,signed, struct,union,void

控制语句关键字12个:for,do,while,break,continue,if,else,goto,switch,case,default,return

存储类型关键字4个:auto,extern,regsiter,static

其他关键字4个:const,sizeof,typedef,volatile

常量

C 语言中,不可以修改的量。
字符常量 :单引号括起来 -- ‘A’ -- 一个字符
双引号括起来 -- “ABCD” -- 一串字符:字符串
‘1’ -- 字符 1 -----------------------默认类型:字符型 char
数字常量 1314  ---------------默认类型:int
小数常量 3.14 ---------------默认类型:double
double > int >char(优先级)
‘A’ + 10 -- 默认的结果是 int
3.14 * 10 = 默认的结果是 double

变量

变量:程序运行时,可以修改的量。
变量如何定义:
类型 标识符 ; ------- 定义 1 个变量           例如:int  num;
类型 标识符 = xx;------ 定义并且给变量赋初值   int num = 20;
1. 定义 1 个变量
2. 计算机就会在内存中,根据变量的类型,开辟相应的空间,存储数据。
3. 通过变量名 ( 标识符 ) 来操作该变量空间。

运算符

赋值运算符: =
        
算数运算符: + - * / %
        /:两个整型数操作,结果还是整型数
        例如:5/2 = 2
        %:求余 -- 除尽之后留下的数     5%2 = 1
        5%2.0 -- 错误 -- 小数不参与求余
条件运算符 ( 关系运算符 ):
        >(大于 )  >= (大于等于) < (小于) <= (小于等于) ==(恒等于) != (不等于)
逻辑运算符: && (逻辑与) || (逻辑或) ! (逻辑非)
        C 语言编译器: 0 -- 结果假   1 -- 结果真
        &&:表达式中 1 个为假,结果为假
        ||:表达式中 1 个为真,结果为真
        !:结果取反
赋值复合运算符 :   num = num+1 ===== num +=1;
        += -= *= /= %=
自增自减运算符 ++  --
        num-- -- 先用后减   
        --num -- 先减后用
位运算符 &  |  ~  << >>  ^
三目运算符: max = (num1>num2)?num1:num2;

流程控制语句

if …… else ……
switch() …… case ……
for()
while()
do …… while()
continue
break
goto
return
顺序执行:
        从 main 函数开始,到 main 函数结束。
        从上到下,从左到右。

continue和break的区别

continue -- 用于循环,跳出本次循环。
        -- 遇到 continue -- 后续代码不执行。
break -- 用于循环和 switch ,跳出本层循环。
#include <stdio.h>
int main()
{
	for(int num=1; num<12; num++)
	{
		if (num % 2 == 0) //如果是偶数,跳过当前迭代
        	continue;
    	else if (num == 7)  //如果是7,跳出循环
        	break;
    	printf("num = %d\n",num);
	}
	return 0;
}

运行结果:

数组

数组的特点: 相同类型数据的集合;数据地址连续
数组类型如何表示: 类型 [数组长度];      例如 int [10]
        
数组变量的定义:
        类型 标识符[ 长度 ];   例如:10个人的身高  int high[10];
        类型 标识符[ 长度 ]={初值};  3个人的具体身高  int high[3] = {120,178,180};
如何表示单个元素: 数组名 [ 下标 ];
#include <stdio.h>
//排序(小--高),并且在终端输出
int main()
{
    int num1[5] = {5, 10, 2, 3, 7};
    int i = 0, j = 0;
    int temp = 0;
    for(i = 0; i < 5; i++)//数组中有 5 个位置
    {
        for(j = 0; j < 5-i; j++)
        {
            if(num1[j] > num1[j+1])
            {//冒泡比较
                temp = num1[j+1];
                num1[j+1] = num1[j];
                num1[j] = temp;
            }
        }
    }
    for(i = 0; i < 5; i++)
    {
        printf("%d\t", num1[i]);
    }
	printf("\n");
    return 0;
}
运行结果:

指针

指针的意义:
        指针就是 1 个类型,该类型代表是地址
如何表示:类型 *                 类型表示指针(地址)存储数据的类型
                                        char int float double 数组 指针 结构体等等
描述地址: 1 个空间里面存放的是字符型数据,就是 char * 表示
描述地址: 1 个空间里面存放的是整型数据,就是 int* 表示
描述地址: 1 个空间里面存放的是浮点型数据,就是 float* 表示
描述地址: 1 个空间里面存放的是双精度浮点型数据,就是 double * 表示
类型大小:        
        32 位计算机 -- 4 个字节
        64 位计算机 -- 8 个字节
指针类型如何表示? -- 类型: 指向 空间的类型
类型 *
//char * -- 描述该地址中存放的是 char 型数据
//int * -- 描述该地址中存放的是 int 型数据
//float * -- 描述该地址中存放的是 float 型数据
//double * -- 描述该地址中存放的是 double 型数据

函数

函数是程序的最小组成单位。
函数的定义(如何表示):
类型 函数名 ( 参数 1, …… )// 函数头
{
        //函数代码开始的位置
        程序/ 代码 ;// 函数体
}
函数名的组成:
1. 字母 数字 下划线组成
2. 数字不可以放开头
3. 区分大小写
4. 不能与关键字相同

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

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

相关文章

平衡树之B树

平衡树 ├── AVL 树 ├── 红黑树 ├── 2-3 树 ├── B 树 ├── Splay 树 └── Treap没研究明白&#xff0c;算啦。不写了

Opus从入门到精通(一)简介

Opus从入门到精通(一):简介 Opus是什么? Opus编解码器是专门设计用于互联网的交互式语音和音频传输。它是由IETF的编解码器工作组设计的&#xff0c;合并了Skype的SILK和Xiph. Org的CELT技术。 Opus编解码器的设计目的是处理广泛的交互式音频应用程序,包括IP语音,视频,游戏…

列出docker常用的命令

一、基础命令 docker run 创建并启动一个容器 docker ps 列出当前运行的容器 docker ps -a 列出所有容器&#xff0c;包括未运行的 docker stop 停止一个运行中的容器 docker start 启动一个已停止的容器 docker restart 重启容器 docker rm 删除一个或多个容器 docker pull 从…

揭秘Netflix背后的魔法:如何用三层架构打造个性化推荐帝国

推荐系统就像一家餐厅的菜单推荐 想象一下&#xff0c;你走进一家餐厅&#xff0c;面对琳琅满目的菜单&#xff0c;不知道点什么好。这时候&#xff0c;服务员给你推荐了几道菜&#xff0c;这些推荐是基于你以往的口味偏好和其他顾客的选择。Netflix的推荐系统也是类似的&…

浅谈golang字符编码

1、 Golang 字符编码 Golang 的代码是由 Unicode 字符组成的&#xff0c;并由 Unicode 编码规范中的 UTF-8 编码格式进行编码并存储。 Unicode 是编码字符集&#xff0c;囊括了当今世界使用的全部语言和符号的字符。有三种编码形式&#xff1a;UTF-8&#xff0c;UTF-16&#…

【PL理论】(21) 函数式语言:支持匿名函数 fun x → E | 设计递归函数 | 支持递归函数:let rec ...

&#x1f4ad; 写在前面&#xff1a;本章我们将讲解支持匿名函数&#xff0c;先回顾一下 F# 语言表示函数的方法&#xff0c;然后引出它。随后我们讲解一下如何设计递归函数&#xff0c;最后让我们的 F- 语言支持递归函数。 目录 0x00 回顾&#xff1a;F# 语言 0x01 支持匿名…

iOS--oc对象,类,和元类本质

iOS--oc对象&#xff0c;类&#xff0c;和元类本质 前言实例对象的具体结构自定义类对象的结构继承关系 类信息的存放对isa、superclass总结 前言 最近在学习runtime的过程中&#xff0c;发现其中消息发送-动态方法解析-消息转发中涉及到了大量的类与对象的底层知识&#xff0…

[NCTF 2018]flask真香

打开题目后没有提示框&#xff0c;尝试扫描后也没有什么结果&#xff0c;猜想是ssti。所以尝试寻找ssti的注入点并判断模版。 模版判断方式&#xff1a; 在url地址中输入{7*7} 后发现不能识别执行。 尝试{{7*7}} ,执行成功&#xff0c;继续往下走注入{{7*7}}&#xff0c;如果执…

ubuntu certbot 生成https ssl证书

一、安装certbot应用 sudo apt update sudo apt install certbot python3-certbot-nginx二、生成证书 # 泛域名&#xff1a; certbot certonly -d *.你的主域名 --manual --preferred-challenges dns# 主域名&#xff1a; certbot certonly -d 你的主/子域名 --manual --pref…

java实战——图书管理项目

文章目录 项目所需要的技术栈项目演示项目准备工作环境准备数据库数据准备 前后端交互分析&#xff08;前端代码我们使用现成&#xff09;图书列表界面的创建查看前端发送的请求根据前端接收的返回值来编写model层根据请求编写controller层根据controller编写Service根据Servic…

代码随想录算法训练营第五十七 | 739. 每日温度、 496.下一个更大元素 I、503.下一个更大元素II

## 739. 每日温度 这里是引用 https://programmercarl.com/0739.%E6%AF%8F%E6%97%A5%E6%B8%A9%E5%BA%A6.html 第一次接触单调栈&#xff0c;看完视频讲解之后思路很清晰&#xff0c;对单调栈能够解决的问题类型有大致了解 class Solution { public:vector<int> dailyTemp…

SARscape5.6.2干涉叠加处理效率提升

SARscape5.6.2于2022年5月正式发布&#xff0c;包含若干更新和优化。干涉叠加处理模块在处理速度方面持续提升&#xff0c;表现在&#xff1a;PS干涉工作流处理、第一次反演和第二次反演优化&#xff0c;速度提升&#xff1b;SBAS处理干涉图生成和干涉图优化速度提升&#xff0…

C# WPF入门学习主线篇(二十)—— 资源和样式

C# WPF入门学习主线篇&#xff08;二十&#xff09;—— 资源和样式 欢迎来到C# WPF入门学习系列的第二十篇。在前面的章节中&#xff0c;我们探讨了布局管理及各种控件的使用。本篇博客将重点介绍WPF中的资源&#xff08;Resource&#xff09;和样式&#xff08;Style&#xf…

vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频

了解webrtc-streamer webrtc-streamer 是一个使用简单机制通过 WebRTC 流式传输视频捕获设备和 RTSP 源的项目&#xff0c;它内置了一个小型的 HTTP server 来对 WebRTC需要的相关接口提供支持。相对于ffmpegflv.js的方案&#xff0c;延迟降低到了0.4秒左右&#xff0c;画面的…

数据预处理 #数据挖掘 #python

数据分析中的预处理步骤是数据分析流程中的重要环节&#xff0c;它的目的是清洗、转换和整理原始数据&#xff0c;以便后续的分析能够准确、有效。预处理通常包括以下几个关键步骤&#xff1a; 数据收集&#xff1a;确定数据来源&#xff0c;可能是数据库、文件、API或网络抓取…

linux中: IDEA 由于JVM 设置内存过小,导致打开项目闪退问题

1. 找到idea安装目录 由于无法打开idea&#xff0c;只能找到idea安装目录 在linux(debian/ubuntu)中idea的插件默认安装位置和配置文件在哪里? 默认路径&#xff1a; /home/当前用户名/.config/JetBrains/IntelliJIdea2020.具体版本号/options2. 找到jvm配置文件 IDEA安装…

GIGE 协议摘录 —— 照相机的标准特征列表(五)

系列文章目录 GIGE 学习笔记 GIGE 协议摘录 —— 设备发现&#xff08;一&#xff09; GIGE 协议摘录 —— GVCP 协议&#xff08;二&#xff09; GIGE 协议摘录 —— GVSP 协议&#xff08;三&#xff09; GIGE 协议摘录 —— 引导寄存器&#xff08;四&#xff09; GIGE 协议…

踩坑!被node-sass折磨的一天

文章目录 被node-sass折磨的一天折磨过程了解原因注意事项 被node-sass折磨的一天 折磨过程 起因是要开发一个老项目&#xff0c;照常拉代码、下依赖、启动三步走 依赖开始下载不对了&#xff0c;以为是node版本问题&#xff0c;寻找node-sass对应的node版本 利用nvm&#…

Allegro光绘Gerber文件、IPC网表、坐标文件、装配PDF文件导出打包

Allegro光绘Gerber文件、IPC网表、坐标文件、装配PDF文件导出打包 一、Gerber文件层叠与参数设置二、装配图文件设置导出三、光绘参数设置四、Gerber孔符图、钻孔表及钻孔文件输出五、输出Gerber文件六、输出IPC网表七、导出坐标文件八、文件打包 一、Gerber文件层叠与参数设置…

安卓动画特效(帧动画、补间动画、属性动画、遮罩动画及滚动器)

本章介绍App开发中常见的动画特效技术&#xff0c;主要包括&#xff1a;如何使用帧动画实现电影播放效果&#xff0c;如何使用补间动画实现视图的4种基本状态变化&#xff0c;如何使用属性动画实现视图各种状态的动态变换效果&#xff0c;以及如何借助绘图层次与滚动器实现动画…