C语言-基础 12.10

本文概述了编程语言的发展历程,从机器语言到高级语言,重点介绍了C语言的基本概念、数据类型、变量定义及初始化等内容。

概述

语言的发展历史:
1、计器语言:计算机能直接识别的语言(0/1组成的代码)
缺点:难以编写与检查错误
优点:计器可以直接识别
2、汇编:由特定助记符来替代二进制指令
mov
#32
3、高级语言:用自然语言与机器沟通
C、C++、JAVA、C#、OC、易语言

计算机的语言:机器语言(计算机只能识别此语言)

编译

1.编译器:高级语言与机器之间的语言翻译专家。

**gcc/g++**是一款很优秀编译器。

1.将高级语言(C语言)翻译为目标程序

  **gcc  源文件  -o  可执行文件名**
  -o :output 生成可执行文件名
    gcc  源文件  默认生成a.out

2.编译过程:

  1. 预编译:替换头文件,宏指令
    #include<stdio.h> /usr/include/stdio.h
  gcc  -E  源文件.c  -o  *.i

2.汇编:将高级语言翻译成为汇编指令

  gcc  -S  源文件.i  -o  *.s

3.翻译:将二进制语言翻译成为机器可以识别的语言

  gcc  -c  源文件.s  -o  *.o

4.链接:凡是引用了外部函数,必须将外部函数的库文件链接在一起

  gcc  源文件.o  -o  *

3.makefile

makefile:是一个文本文件,该文件中包含自动化的编译规则

目标:依赖文件
      <tab>command;
目标:
      shell命令

定义变量:
变量名=字符串
引用变量:
$(变量名)
make:执行makefile文件、自动化编译(make命令时,shell会查找本地的makefile文件)
1、在执行make的命令时,一当发现某个目标的依赖文件修改时间没改变时,不会执行此命令。
2、make 目标名 执行该目标命令
运行程序:
路径/可执行文件名

lzr:lzr.o
        gcc lzr.o -o lzr
lzr.o:lzr.s
        gcc -c lzr.s -o lzr.o
lzr.s:lzr.i
        gcc -S lzr.i -o lzr.s
lzr.i:lzr.c
        gcc -E lzr.c -o lzr.i
clearn:
        rm lzr.o lzr.s lzr.i

在这里插入图片描述

C语言

C语言:是一门强类型(数据类型之分)面向过程的语言
注:是以模块(函数(过程))单位,执行的单位

程序=算法+数据

C语言的数据:
1、源文件:存放高级语言的文件
后缀名: .c
2、程序的入口函数:程序开始的地方(主函数)

以类型划分:整型,浮点型,字符型
按数据是否可变:常量,变量

常量: 不可改变的量

整型常量 :
十进制: 100 [1-9]…[0-9][0-9]
八进制: 0100 0[0-7]…[0-7]
十六进制:0x100 0x[0-9,a,…f]
八进制转换为十进制: …81*值+80
十六进制转换为十进制:…161*值+160

变量:可以改变的量 (大小由变量的容器决定)

**定义变量:申请空间的大小**

[有无符号] 类型 变量名;

 eg:signed short b

整形变量:(申请一块存储空间) 专门存放整型数据的“空间”
类型 变量名;
注:C语言的整型类型有 基本整型
按类型分:
int,短整型short,长整型long
eg:定义一个基本整型变量a:
int a;
不可出现同名定义在同一“函数”中
按有无符号: +100 -100
有符号:signed
注:如果定义变量时,没有指定有无符号时。默认是有符号位
int a;等价于 signed int a;

无符号:unsigned
初始化:在定义变量同时赋初值

short b=10;

引用变量:就是引用该变量的“内容

输入输出

printf("%d",数据);  %d将二进制转换为十进制输出

运算符

求空间大小的运算符:sizeof

计算机的基础:
1、存储单位:
1、最小的存储单位: bit (存放一个0或者1)
2、基本存储单位:Byte 字节 (1Byte=8bit)
1Byte=8bit)
3、其他的存储单位:
1Kb=1024Byte=2^10Byte
1Mb=1024Kb
1Gb=1024Mb
1Tb=1024Gb

short 的存储范围

最大值:0111111111111111 =2^15 -1=32767
最小值:1000000000000000,求补码,符号位不变,其余位取反,然后加1,=-2^16=-32768
正数的符号为0,负数的符号位为1

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值