【无标题】

学习目标:


 

学习内容:

一、第一个C语言程序

在Linux中,C语言源程序的拓展名.c,所以C程序的源文件名字应该是xxx.c

hello.c

【1】格式

#include <stdio.h>

int main(int argc,const char *argv[])

{

printf("hello world\n");

return 0;

}

 

 【2】注释

 

二、gcc编译器

c语言是编译型语言,需要编译才能执行,安全的。

【1】一步编译

gcc 文件名.c,默认生成一个名为a.out的可执行文件,执行可执行文件./a.out

gcc 文件名.c -o 可执行文件,

gcc hello.c -o hello, 编译hello.c文件生成名为hello的可执行文件,直接./hello,可以运行可执行文件。

任务

使用gcc的一步编译,编译并执行第一个C语言程序。

 

【2】分步编译ESc->iso

预处理----编译----汇编---链接

每一步都可以使用.c文件直接执行

i)预处理 E i

展开头文件,替换宏定义,删除注释,不会检查语法错误,生成编译文件。

gcc -E hello.c -o hello.i

ii)编译 S s

会检查语法错误,生成一个汇编文件

gcc -S hello.i -o hello.s

iii)汇编 c o

生成一个二进制文件

gcc -c hello.s -o hello.o

iv)链接

链接到程序需要的静态库/动态库,生成一个可执行文件,ELF类型的文件

gcc hello.o -o hello 

 

 

三、计算机中的数据存储

数值型、非数值型

【1】计算机中的存储单位

1bit 是最小的存储单位

1Byte = 8bit 是内存分配的最小单位

1Kb = 1024Byte

1Mb = 1024Kb

1Gb = 1024Mb

1Tb = 1024Gb

【2】进制转换

二进制、十进制、八进制、十六进制、六十进制

计算机中数据的处理都是以二进制进行处理的

0010 0001

基数

2

8

10

16

数码

0 1

0-7

0-9

0-9 A-F

位权从右到左

2^0 2^1

8^0 8^1

10^0 10^1

16^0 16^1

前导符

0b

0

0x

i)十进制转二进制

十进制转任意进制,直接更换辗转相除法的除数。

辗转相除法

 

 90转16进制

 

 

ii)二进制转16进制

二进制转十六进制,每四位二进制数转一位十六进制数,四位二进制数依次是8421

1111 0110

F6

练习:

  1. 127转成二进制数 128=2^7 1000 0000 = 128 -1 0111 1111
  2. 67转二进制数 辗转相除法 0100 0011,67-64 =3 64= 2^6,0100 0011

 

  1. 67转十六进制数 43
  2. 255转二进制数 1111 1111 255=2^8
  3. 234转二进制数 1110 1010
  4. 214转二进制 1101 0110 从255的基础上减
  5. 0x67转二进制 0110 0111

iii)二进制转八进制

三位二进制数转一位八进制数

一位八进制数转三位二进制数

111 111

 7      7

1、把 0100 0011转成八进制 103

练习:

1、0x57转二进制,转八进制

0101 0111,127

2、79转十六进制             0x4F

3、47转二进制                  0010 1111

4、00101 1110 转十六进制     5E        八进制136

四、基本数据类型

四、基本数据类型

C语言中的数据类型分为:基本数据类型 构造数据类型 void(空类型)

【1】整形

1,2,3,4······

整形默认是int类型

 

【2】浮点型

3.14····

浮点型数据默认是double类型

浮点型数据在计算机存储的是一个近似值。

浮点型数据的存储遵循IEEE754标准。

float最多可以表示小数点后6位

double最多可以表示小数点后15位

数据类型

大小

占位符

float 单精度浮点型

4Byte

%f

double 双精度浮点型

8Byte

%lf

【3】字符型

非数值型数据

在计算机中以ASCII进行存储

'a','b','c'·····

数据类型

大小

占位符

char

1Byte

%c输出字符

%d输出字符的ASCII码

sizeof(数据)运算符:求数据的大小

需要记住的ASCII码

'\n':10

'a':97

'A':65

' ':32

'0':48

五、常量

在程序运行过程中,不能修改的量。

【1】整形常量

1,2,3,4····· %d

【2】浮点型常量

1.0,2.0,7.8·····

【3】字符型常量

'a','b'···· 被单引号包起来的单个字符

【4】字符串常量

"hello","a",····· %s 被双引号包起来的一个或多个字符

C语言中字符串结束标志,字符串的结尾有一个'\0'

【5】宏定义常量

在宏定义阶段,多使用预处理查看替换结果

 

 

练习

10/4 = 2 取整数部分

1、有如下宏定义

#define N 10

#define M N+2

#define NUM M*N+M/4

求NUM的结果

2、有如下宏定义

#define M 10

#define N M+7

#define NUM M+N*N/M+7

3、使用带参宏实现,两数相加和两数相减

宏定义的注意事项(作业)

六、标准的输入输出函数

【1】输出函数 printf

 

 

 

 

 


 

学习时间:

提示:这里可以添加计划学习的时间

例如:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

学习产出:

提示:这里统计学习计划的总量

例如:

  • 技术笔记 2 遍
  • CSDN 技术博客 3 篇
  • 习的 vlog 视频 1 个
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值