c语言学习第一日

C语言简介

发展历史

1、机器语言

机器语言就是计算机能直接识别的语言,即由0和1组成的代码
他的优点和缺点都非常突出
缺点就是很难进行编写和检查错误
优点就是他是一个计算机能够直接识别的语言

2、汇编

汇编是一种由特定助记符来代替二进制命令来与计算机进行沟通的语言

3、高级语言

现在人们用来与计算机进行沟通的语言:
比如:C、C++、JAVA、C#、OC、易语言等

计算机的语言

机器语言:计算机智能识别此种语言
编译器:高级语言与机器之间的语言翻译专家。

gcc/g++

1、将高级语言(C语言)翻译成目标程序
gcc/g++ 源文件 -o 可执行文件名
-o output生成可执行文件名
gcc 源文件 默认生成a.out

编译过程(*)  动态库 静态库

1、预编译:替换头文件,宏指令 (检查语法错误,替换头文件,宏指令)
#include<stdio.h> // /user/include/stdio.h
gcc -E 源文件 -o .i
2、汇编:将高级翻译成为汇编指令
gcc -S 源文件.i -o .s
3、翻译:将非二机制语言翻译成为机器可以识别的语言(
)
gcc -c 源文件 -o .o (将此源文件翻译成为二进制)
4、链接:(凡是引用了外部函数,必须将外部函数的库文件链接在一起)
gcc 目标文件 -o 可执行文件
3、makefile:是一个文本文件(没有多种类型),该文件中包含自动化的编译规则windows下编程没有makefie,(都是IDE已经为你做了这个工作)
目标:依赖文件
command;
目标:
shell命令
定义变量:
变量名=字符串
引用变量:
$(变量名)
make:执行makefile文件、自动化编译(make命令时,shell会查找本地的makefile文件)
1、在执行make的命令时,一当发现某个目标的依赖文件修改时间没改变时,不会执行此命令。
2、make 目标名 执行该目标命令
运行程序:
路径/可执行文件名
练习:
1、在makefile中将编译过程表述出
2、删除中间过程的文件 .i .s .o在这里插入图片描述
C语言:是一门强类型(数据类型之分)面向过程的语言
注:是以模块(函数(过程))单位,执行的单位
程序=算法+数据
C语言的数据:
1、源文件:存放高级语言的文件
后缀名: .c
2、程序的入口函数:程序开始的地方(主函数)
以类型划分:整型,浮点型,字符型
按数据是否可变:常量,变量
1、常量: 不可改变的量
1、整型常量 :
十进制: 100 [1-9]…[0-9][0-9]
八进制: 0100 0[0-7]…[0-7]
十六进制:0x100 0x[0-9,a,…f]
八进制转换为十进制: …81*值+80

十六进制转换为十进制:…161*值+160

2、字符型常量:
3、浮点型常量:
2、变量:可以改变的量 (从少,由该变量的容器来决定)
1、定义变量:申请空间的大小
[有无符号] 类型 变量名;
整形变量:(申请一块存储空间) 专门存放整型数据的“空间”
类型 变量名;
注:C语言的整型类型有 基本整型
按类型分:
int,短整型short,长整型long
eg:定义一个基本整型变量a:
int a;
不同出现同名定义在同一“函数”中
按有无符号: +100 -100
有符号:signed
注:如果定义变量时,没有指定有无符号时。默认是有符号位
int a;等价于 signed int a;
无符号:unsigned
2、初始化:在定义变量同时赋初值
short b=10;
3、引用变量:就是引用该变量的“内容”
3、输入输出:
printf("%d",数据); %d将二进制转换为十进制输出
4、运算符:
1、求空间大小的运算符: sizeof
(面试题: sizoef与strlen的区别?)

计算机的基础:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值