当前位置: 首页 > news >正文

c语言

整型家族:
short 短整型 2字节 %hd
int 整型 4字节 %d
long 长整型 4字节 %ld

浮点家族:
float 单精度浮点型 4字节 %f
double 双精度浮点型 8字节 %lf

字符型:
char 字符型 1字节 %c

变量: 在程序运行过程中,其值可以发生变化的量。
常量: 在程序运行过程中,其值不发生改变的量,叫常量。

1. 算术运算     + - * / %

2. 关系运算    >  >=  <  <=  ==(相等)  !=(不等)

3. 逻辑运算     &&   ||    !

优先级: 算术运算 > 关系运算 > 逻辑运算。  

4.区分表达式的值:
x++ : 表达式的值,使用的是变量x 自增1之前的值。
++x : 表达式的值,使用的是变量x 自增1之后的值。

5.sizeof 操作符

作用: 求变量占内存空间的大小。
括号中的对象: 变量类型、变量名。

6. 条件运算符 (c 语言中唯一的三目运算符) 问号冒号表达式
格式: 表达式1 ? 表达式2 : 表达式3
意义: 表达式1为真吗 ? 如果为真,那么选取表达式2,否则,选取表达式3的结果。

 

7.运算符优先级:

括号成员第一: [] () . ->
全体单目第二: ++ -- ! sizeof (+)
乘除余三加减四: * / % + -
移位五、 >> <<
关系六: > >= < <=
等与不等排第七: == !=
位运算:八九十
逻辑与十一: &&
逻辑或:十二: ||
条件运算 : ?:
赋值: : = += -= *= &= |= ^= <<= >>=
逗号运算符 : ,

 

8.

进制基本问题:

十进制: 逢十进一。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
二进制: 逢二进一。 000 001 010 011 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000
八进制: 逢八进一。 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 20
十六进制:逢十六进一。 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10

不同进制有不同前缀:
八进制: 前缀为 0 。 0664 0777
十六进制:前缀为 0x. 0xa5

进制间的转换:
二进制转换成其他进制:
二转十:二进制中每个位的值,与对应的权值相乘,然后求和,最终的结果即为十进制数。
二转八:二进制的每三位,对应转换为八进制的一个位。
二转十六:二进制的每四位,对应转换为十六进制的一个位。

十转二: 十进制数除以2,将余数从右向左列排列开。将得到的结果重复刚才的除法过程,直到商为0时为止。排列的余数即为所求的二进制数。
八转二: 八进制的一个位,对应转换为二进制的三个位。
十六转二: 十六进制的一个位,对应转换为二进制的四个位。

9.字符串处理函数

1. 字符串拷贝函数: strcpy(dest,src);

2. 字符串拼接函数: strcat(dest,src);

3. 字符串长度函数:  strlen(string);

4. 字符串比较函数:  strcmp(s1,s2);

10.全局变量 与 局部变量

全局变量: 定义在函数之外的变量。
局部变量: 定义在函数之内的变量。

全局变量特点:
1) 如果没有进行初始化,全局变量的初始值为 0 。
2) 作用域:从定义的位置,到文件末尾。
3) 生命周期: 从程序的开始,到程序执行结束,全局变量始终存在。
4) 全局变量不能重名。

局部变量特点:
1) 如果没有进行初始化,局部变量的初始值为 随机值。
2) 作用域: 函数内。
3) 生命周期:在函数被调用时定义,函数执行结束后,变量消亡。
4) 不能重名。

注: 全局变量 和 局部变量可以重名。 如果重名,那么会使用局部变量。

11.内存管理

1. c语言定义了 4 个内存区间: 静态全局区、代码区、堆区、栈区

代码区: 用来保存代码。 只读。
静态全局区: 用来保存静态变量、全局变量、字符串常量。

栈区: 在函数调用时,系统会为函数自动分配内存空间。用来保存局部变量等内容
在函数执行结束后,系统会自动释放栈空间。

堆区: 程序员专用区。 申请空间,需要手动申请,使用 malloc 函数。
也就是: 如果只有在程序运行过程中,才知道要使用的内存多大。使用这种动态分配的方式。

12.静态库与动态库的区别:

静态库:在程序编译时加载。      *.a
动态库:在程序执行时进行链接。    *.so

 

 

1.生成 hello.o 文件
原因: 库文件都是由 .o 文件生成的。
命令: gcc -c hello.c -o hello.o

2. 制作动态库(共享库)
命令: gcc -fPCI -shared hello.o -o libmyhello.so // 动态库的命名规则: lib + 库名 + .so (动态库)

3.制作静态库
命令: ar cr -o libmyhello.a hello.o

 

制作完需要使用时,编译和执行:

gcc main.c -L. -lmyhello  

./a.out

 

http://www.jsqmd.com/news/647192/

相关文章:

  • Credo同意收购DustPhotonics,加快进军硅光子领域,推动下一代光互连业务拓展
  • virt基础-bar模拟调用流程
  • MySQL 查询:按2017年平均成绩降序列出所有学生姓名及均分
  • 全文降AI的好处你知道吗?这3款工具帮你省时省力
  • Halcon点云降噪实战:用`get_object_model_3d_params`和`select_points_object_model_3d`搞定稀疏离群点
  • Claude Code Routines:如何让AI编程助手实现全自动工作流?
  • PHP怎么使用外键映射模式_PHP关联关系处理方法【指南】
  • 从原理到实战:用Qt和C++手搓一个带容错的二维码生成器
  • static静态变量
  • 大麦网自动抢票脚本技术解决方案:告别手动抢票的低效率困境
  • Linux服务器宝塔面板故障排查:SSH可连接但面板无法访问的解决方案
  • 从Nucleo到BluePill:一份超详细的STM32F103 BSP移植实战记录(附避坑点)
  • 树莓派+SocketCAN实战:手把手教你用CanFestival控制伺服电机(保姆级避坑指南)
  • 配置操作失败数量统计
  • LVGL复选框(lv_checkbox)实战:手把手教你做个嵌入式点餐界面(附完整源码)
  • 如何避免组态王打包程序时的3个典型错误?实测经验分享
  • 别只当计算器用!深入理解ANSYS Workbench 18.2 的Units设置与Engineering Data管理
  • 畅快呼吸,从 “鼻” 守护 —— 世界爱鼻日大咖共话慢性鼻窦炎药物与手术规范化诊疗
  • 软件工程师的远程工作攻略:全球高薪机会
  • 3大技术突破:nanoMODBUS如何重塑嵌入式工业通信的轻量化标准
  • 别再乱配Shiro了!Spring Boot整合Shiro实现Token登录,这份配置清单请收好
  • Stata17新版实测:3种数据导入方法速度对比(附命令行自动化脚本)
  • Renesas MCU开发踩坑记:CS+ for CC找不到iodefine.h的3种解决方法
  • 2025届毕业生推荐的AI科研助手推荐
  • aubo i5 + realsense D435i手眼标定
  • 想把 Chrome 插件变成独立的桌面程序
  • 2025届最火的十大降AI率工具推荐
  • 音视频直播构建优化
  • 保姆级教程:用Python+Ultralytics YOLOv8实时识别你电脑屏幕上的任何物体(附完整代码)
  • 2026年4月企业微信SCRM系统TOP7实测榜单:全行业私域增长工具选购指南