c语言的学习01

c语言的学习01

一、第一个程序

#include<stdio.h>
int main()
{
    printf("Hello World!\n");
    return 0;
}

#include<stdio.h> 程序员所编写的代码并不是标准c代码,需要一段程序对他进行翻译成标准c代码,负责翻译的程序叫做预处理,被翻译的代码叫做预处理指令,在c语言中以#开头的都是预处理指令。

#include 功能是把一个头文件导入到当前文件

#include <> 从系统指定的目录下导入头文件

#include “” 先从当前目录下导入头文件,如果没有,在从系统指定目录下导入头文件

stdio.h 主要负责对具有输入输出功能的函数进行说明

头文件:.h结尾,里面存储的是一些辅助型代码,绝大多数都是函数的声明(只是函数的开头)

源文件:.c结尾,里面记录的是功能性的代码

main函数 是程序的入口,有且只有一个

int 是一种数据类型,他表示main函数的执行结果是一个整数

return 功能有两个:1、结束函数的执行 2、返回一个执行结果给函数的调用者

二、编译器

​ 负责把人能看懂的记录代码的文本文件,翻译成计算机能看懂的二进制文件,由预处理器、编译器、连接器组成。

​ 常用的参数有:

-E 显示预处理结果

-c 只编译不链接

-o 指定编译结果的名字

-S 生成汇编代码

-I 指定头文件的加载路径

-l 指定要使用的代码库

-Wall 以严格的标准检查代码,显示更多的警告提醒

-Werror 把警告当作错误处理

-std 设置编译语法标准

三、把c代码变成可执行程序的过程

1、预处理 把源文件翻译成预处理文件

​ gcc -E code.c 显示预处理结果到终端上

​ gcc -E code.c -o code.i 生成以 .i 结尾的预处理文件

2、编译 把预处理文件翻译成汇编文件

​ gcc -S code.i -> code.s 生成以 .s 结尾的汇编文件

3、汇编 把汇编文件翻译成二进制的目标文件

​ gcc -c code.s -> code.o 生成以 .o 结尾的目标文件

4、链接 把若干个目标文件合并成一个可执行文件

​ gcc a.o b.o c.o … -> a.out

四、c文件类型

.h 头文件

.h.gch 头文件的编译结果,它会被优先使用

.c 源文件

.i 与处理文件

.s 汇编文件

.o 目标文件

.a 静态库文件

.so 共享库文件

五、存储空间的单位

bit 比特 一个二进制位,只存储0或1,计算机存储数据的最小单位

Byte 字节 八个二进制位,计算机存储容量的基本单位

KB 1024字节

MB 1024kB

六、数据的类型

为什么要对数据进行分类:

​ 1、符合现实社会

​ 2、对数据进行分类可以节约存储空间、提高运行效率

c语言中数据分为两大类:自建(程序员自己设计的,例如:结构、联合、类)和内建(c语言自带的)

sizeof() 计算类型的字节数

整型:

signed 有符号的整型

​ signed char 1个字节 -128~127(查范围)

​ signed short 2个字节 -32768~32767

​ signed int 4个字节 正负20亿

​ signed long 4/8个字节 正负20亿/正负9开头的19位整数 (与操作系统的位数32位/64位有关)

​ signed long long 8个字节 正负9开头的19位整数

​ unsigned 无符号的整型

​ unsigned char 1个字节 0~255

​ unsigned short 2个字节 0~65535

​ unsigned int 4 个字节 0~40亿

​ unsigned long 4/8字节 040亿/01开头的20位数

​ unsigned long long 8个字节 0~1开头的20位数

注意:写程序时,signed不加就代表加

注意:由于定义无符号整数数据时比较麻烦,因此标准库把这些无符号类型重新定义成以下类型:

​ 需要包含头文件 stdio.h

​ uint8_t uint16_t uint32_t uint64_t

​ int8_t int16_t int32_t int64_t

​ 浮点型:

​ float 4字节

​ double(默认为double类型) 8个字节

​ long double 12/16字节

​ 注意:采用科学计算方法,二进制数与真实数据之间需要换算,因此计算浮点型数据比整形要慢,因此尽量选择整形使用

​ 小数点后6位有效

​ 模拟:

​ char 字符型 字符其实就是符号或图案,在内存储的其实是整数,显示时会根据ASCII码表中对应的关系来显示对应的符号或图案

​ 0 '\0’特殊字符

​ 48 ‘0’

​ 65 ‘A’

​ 97 ‘a’

​ bool 布尔型 c语言中是不可能有真正的布尔类型,因为现有c语言才有的bool类型,stdbool.h对布尔类型进行模拟

​ bool true false

可以使用 sizeof() 计算类型的字节数

七、变量与常量

什么是变量:程序运行期间数值可以变化的叫做变量,相当于存放数据的盒子

定义: 类型 变量名;

​ int num;

​ 取名规则:

​ 1、有数字、字母、下划线组成

​ 2、不能以数字开头

​ 3、不能与c语言的关键字(32个)重名,要求默写

​ 4、见名知意(功能、类型、范围)

​ printf scanf bool sizeof()(前三个都可以用为变量名)

​ 注意:变量的默认值是随机的,为了安全起见,一般初始化位0使用:

​ 赋值: num=100;

​ 参与运算; num*10;

类型占位符:c语言中通过类型占位符来传递变量的类型

%hhd %hd %d %ld %lld

%hhu %hu %u %lu %llu

%f %lf %LF

什么是常量:程序运行期间数值不能改变的叫做常量

​ 10 默认int

​ 100l long

​ 100ll long long

​ 100u unsigned int

​ 100lu unsigned long

​ 100ll unsigned long long

​ 3.14 double(默认)

​ 3.14f float

八、格式化的输入输出

%nd 显示n个字符宽度,不够则补空格,右对齐

%-nd 显示n个字符宽度,不够则补空格,右对齐

%0nd 显示n个字符宽度,不够则补0

%n.mf 显示n个字符宽度(算上小数点),不够则补空格,m表示小数点后的位数

%-n.mf(会左对齐,在后面补空格) 显示n个字符宽度(算上小数点),不够则补空格,m表示小数点后的位数

%g 不显示小数点后多余的零

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值