发布时间:2026/7/24 23:10:04
【00002】 二、C语言2.1基本数据类型1.C语言开发步骤1 vi编辑器1.使用vi打开软件vi filename.cvi编辑器三种模式底行模式默认其余模式可以ESC进入底行模式插入模式底行模式输入i、a、o均可进入插入模式命令模式底行模式输入: 进入命令模式:wq保存并且退出:w只保存不退出:q直接退出:q!不保存强制退出:wq!强制保存并且退出2. 点击i键进入插入模式3. 编写代码#include stdio.hint main(void){printf(Hello World!\n);return 0;}4. 点击ESC5. 输入:wq保存并且退出2gcc编译器1.编译C语言代码gcc filename.cgcc filename.c -o filename注意如果不指定生成二进制的程序名默认会生成a.out如果编译报错需要重新打开代码修改语法问题如果编译报警告最好打开代码修改告警问题2.gcc编译流程预处理处理和#号相关的代码#include头文件包含将头文件中的内容展开#define宏定义将宏定义完成替换#if #endif #else #elif #ifndef #ifdef条件编译gcc -E filename.c -o filename.i编译将C语言代码编译成汇编代码gcc -S filename.c -o filename.s汇编将汇编代码编译成二进制代码gcc -c filename.c -o filename.o链接将多个二进制代码链接为一个可执行程序gcc filename.c -o filename3运行代码./二进制程序名2.基础知识1程序如何在计算机中运行1. 编写C语言代码和编译好的二进制可执行程序都存放在外存中2. 当执行代码时会将外存中的二进制代码放入内存中执行与CPU交互实现对应功能3. 当代码执行结束后会将内存中二进制代码及其执行空间回收掉2计算机中数据量的单位1. 计算机中只有0、1二进制数据2. 1bit位3. 1byte字节 8bit4. 1kb 1024 bytes5. 1mb 1024 kb6. 1gb 1024 mb7. 1tb 1024 gb3进制转换1. 二进制0b逢二进一 0 12. 八进制0/0o逢八进一 0 1 2 3 4 5 6 73. 十进制逢十进一 0 1 2 3 4 5 6 7 8 94. 十六进制0x逢十六进一 0 1 2 3 4 5 6 7 8 9 a b c d e f5. 二进制、八进制、十六进制转十进制对应位 * 对应位的权值再求和6. 十进制转二进制、八进制、十六进制十进制数除以进制数得到的余数逆序排列7. 二进制转换为八进制二进制三位对应八进制1位8. 二进制转换为十六进制二进制四位对应十六进制1位3.基本数据类型数据类型数据对象的特性基本数据类型C语言中已经定义好的数据类型整数类型123浮点数类型小数类型/实数类型 3.14字符型A !逻辑类型true false缺省类型void构造数据类型需要用户自己定义的数据类型1整数类型1.short短整型占2个字节singed short默认signed short类型最左边的1bit表示符号位0为正、1为负其余位表示数据位数据位按照补码存放负数补码原码-反码1signed short类型表示范围-32768 -- 32767unsigned shortunsigned short类型所有字节空间均存储数据位unsiged short类型表示范围 0 -- 655352.int整型占4个字节singed int默认signed int类型最左边的1bit表示符号位0为正、1为负其余位表示数据位数据位按照补码存放signed int类型表示范围-21亿 -- 21亿unsigned intunsigned int类型所有字节空间均存储数据位unsiged int类型表示范围 0 -- 42亿3.long长整型占8个字节singed long默认signed long类型最左边的1bit表示符号位0为正、1为负其余位表示数据位数据位按照补码存放signed long类型表示范围-2^32 -- 2^32 -1unsigned longunsigned long类型所有字节空间均存储数据位unsiged long类型表示范围 0 -- 2^64 -12浮点数类型1.float单精度浮点数类型占4个字节所有的float类型均为有符号1位符号位 8指数位 23尾数位float类型 6-8位有效数字2.double双精度浮点数类型占8个字节所有的double类型均为有符号1位符号位 11指数位 52尾数位double类型12-16位有效数字3字符型char该类型主要用于表示存储字符类型占1个字节singed char默认signed char类型最左边的1bit表示符号位0为正、1为负其余位表示数据位数据位按照补码存放signed char类型表示范围-128 -- 127unsigned charunsigned char类型所有字节空间均存储数据位unsiged char类型表示范围 0 -- 255ASCII码表规定字符和数字之间转换关系表示所有能够在屏幕上显示或者键盘输入的字符32号之前主要用于通信控制4波尔bool类型/逻辑类型bool类型的值域范围true1、false0C语言中非0值即为逻辑真值0值为逻辑假值5缺省void类型主要用于搭配函数传参、指针来使用4.常量和变量1常量1.整型常量默认为signed int类型-123100123U123u123UL123ul123l123L01230x1a0X1F2.浮点型常量默认为double类型5.1212.343.14f5.34F12.56e5-13.98e-1099.34E83.字符常量字符型常量必须加 只能写1个字符a;A;Z;!;~;;; ;0;1;9;\n;换行符光标移到下一行开头\a;响铃警报输出时终端蜂鸣\b;退格符光标向左回退一格\r;回车符光标回到本行最左侧\t;水平制表符横向跳格通常占 4/8 空格宽度\v;垂直制表符纵向换行跳行\\;反斜杠本身用来输出一个\\0;空终止符ASCII 0C 语言字符串结束标记\065;\x41;4.字符串常量字符串最末尾会有一个用来标识结尾的\0字符“a”是由a和\0组成与a不等价5.标识常量#define 宏定义增强代码的可读性避免魔鬼数字宏定义只是代码的替换不会执行任何数据计算的操作宏定义中能加括号就加括号#define M 50#define N MM2变量在程序运行过程中值可以发生改变的量变量因为在内存中有存储空间所以可以通过向存储空间赋值来修改变量的值变量必须先定义再使用开辟对应类型的变量空间空间名称为变量名通过变量名可以访问该空间存取变量中的数据时必须按照变量类型完成对数据的操作1.变量的定义数据类型 变量名;数据类型基本数据类型构造数据类型变量名只能由字母、数字、下划线构成不能以数字开头不能与C语言关键字重名最好不要与C语言库函数重名变量名最好做到见名知意驼峰法、Linux内核 GNU整形变量定义:short var;unsigned short var;int var;unsigned int var;long var;unsigned long var;浮点型变量定义float var;double var;字符型变量定义char var;unsigned var泊尔类型变量定义#include stdbool.hbool var;2.变量的初始化初始化定义变量时为变量赋初值称为初始化赋值变量定义完毕后通过“”对变量空间赋值将“”右边的值拷贝到“”左边的空间注意如果变量不初始化变量为随机值所以变量一定要初始化不要使用未经初始化的变量3表达式概念由运算符连接的常量或变量组成的式子特点表达式一定有类型表达式一定有值1.混合数据数据类型运算如果运算符左右两端类型不一致需要转换为同一类型进行运算转换规则低精度类型转换为高精度类型浮点数类型精度 整数类型精度同一类型所占空间越大精度越高无符号类型精度 有符号类型精度char、short在数据运算时会强制换转为int进行数据运算和数据处理float在数据运算时会强制换换位double进行数据运算和数据处理类型转换1. 强制类型转换显示类型转换类型表达式/变量2. 隐式类型转换主要发生在混合数据类型运算和处理时低精度转换为高精度4运算符1.算数运算符加法、-减法、*乘法、/除法、%取余、自增、--自减%唯一不能对浮点数操作的算数运算符/--只能对变量操作2.赋值运算符、、-、*、/、%左值变量可以作为左值常量/表达式不能作为左值右值变量/常量/表达式都可以作为右值混合类型赋值处理方式1. 整形赋值给浮点数类型扩展精度2. 浮点数类型赋值给整形舍弃小数点后的精度数据3. 如果有符号和无符号整形互相赋值会直接完成内存空间的拷贝4. 小数据放入大空间有符号数扩符号位无符号数扩05. 大数据放入小空间直接截取数据低位3. 逗号运算符从左到右依次执行逗号表达式并将最后一个逗号表达式的结果作为整体的结果4. sizeof运算符sizeof可以获得数据类型或者变量所占内存空间大小单位字节5. 运算符优先级括号 单目 双目算数 移位 关系 位 逻辑 三目 赋值 逗号

相关新闻

2026/7/24 23:10:04

1A,30VIN,双灯,XZ4056V,反接保护

产品概述这是一款完整的单节锂离子电池采用涓流、恒流、恒压控制的线性充电器,充电电流范围100mA-1000mA之间可设置。芯片底部有散热片的ESOP8封装与较少的外部元件数目而成为便携式应用的理想选择。可以适合USB电源和适配器电源工作。该充电器有电池温度监控&#…

2026/7/24 23:10:04

智谱AI工具环境配置与API调用实战指南

这类标题容易让人联想到技术对抗或安全攻防,但实际落地时,我更建议先从工具本身的能力边界和适用场景入手。智谱系列模型和工具在文本生成、代码辅助、数据分析等场景下有不错的应用潜力,但能不能稳定集成到你的工作流里,关键要看…

2026/7/24 23:10:04

QT实现DockWidget内部组件自动换行布局

QT实现DockWidget内部组件自动换行布局 在复杂的桌面应用程序开发中,QT的DockWidget(停靠窗口)系统提供了灵活的子窗口管理能力。然而,当DockWidget内部包含多个动态添加或大小不一的组件时,如何让它们自动换行、适应…

2026/7/25 0:35:46

2026年商用清洁机器人品牌推荐榜:五大品牌全场景实力解析

商用清洁机器人正在从“买一台设备试试看”,进入按场景、面积和运营目标成套部署的新阶段。 国际机器人联合会(IFR)发布的《World Robotics 2025—Industrial Robots》显示,2024年全球工业机器人新安装量达到542076台&#xff0c…

2026/7/25 0:35:46

[特殊字符] ENCFORGE 深度分析:当勒索软件学会了加密 AI 模型

传统勒索软件加密你的文件——ENCFORGE 加密的是你的 AI 模型。重建成本:每模型 75,000 到 500,000 美元。你好,我是老张。如果你以为勒索软件还是“加密文档、勒索比特币”那套老把戏,那 2026 年 7 月的这起事件会刷新你的认知。一个名为 JA…

2026/7/25 0:35:46

HTML5实战:轻松嵌入FLV视频播放技巧

html没办法直接引入flv格式的视频, 得借助引入一个swf的播放器来播放flv格式的视频 , class id ;type width 这些代码的意思就不用我讲了吧 关于宽, 还有高, 把“视频地址”换成你特有的那个视频地址实际上是播放flv文件的播放器下载地址;此次给大伙带来…

2026/7/25 0:35:46

Moneta亿汇:围绕客户支持与工具可用性的要点梳理

在外汇行业语境里,表达越清晰、信息越透明,越容易建立稳定预期。在Moneta亿汇的外汇服务中,从公开信息与使用体验出发,梳理其更值得肯定的能力点与细节表现。外汇相关平台的价值,体现在长期一致性与信息呈现的细致程度…

2026/7/25 0:30:46

别人的面试题(持续更新)

promise的本质是什么Promise本质是带状态机的异步结果容器,基于订阅发布模式实现内部维护pending,fulfilled,rejected三种单向凝固状态异步未完成时收集.then()注册的回调,异步完成后立刻触发回调队列then每次返回都是新的promise…

2026/7/23 12:54:51

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/25 0:00:15

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:15

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:15

VHF 甚高频语音喊话系统(桥梁智能防撞场景)核心优势

一、直达船员,预警链路最短营运船舶强制标配 VHF 船载电台,属于驾驶室常态化值守设备;预警语音直接传递至驾驶人员,区别于岸上声光报警(船员经常听不到)、短信 / 小程序(船员极少主动查看&#…

2026/7/23 23:42:43

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…