C语言第二天

C语言第二天

gcc编译器

常用编译参数:
  • gcc常用参数效果
    -E只显示预处理结果到终端
    -std = gnu99设置c99语法标准
    -c只编译不连接
    -o指定编译结果的名字
    -S生成汇编代码
    -I指定头文件的加载路径
    -Wall尽可能多地产生警告
    -Werror把警告当成错误处理
    -i指定要加载地代码库 例如:-im使用数学库

C代码变成可执行文件的详细过程

  1. 预处理 把源文件翻译成预处理文件
    • gcc -E code.c 显示预处理结果到终端
    • gcc -E code.c -o code.i 生成.i结尾预处理文件
  2. 编译 把预处理文件翻译成汇编文件
    • gcc -S code.i 生成.s结尾的汇编文件
  3. 汇编 把汇编文件翻译成二进制文件
    • gcc -c code.s 生成.o结尾的目标文件
  4. 链接 把若干个目标文件合并成一个可执行文件
    • gcc a.o b.o c.o … 默认生成a.out可执行文件

C语言的文件类型

.c源文件
.h头文件
.h.gch头文件的编译结果文件,会被优先使用
.i预处理文件
.s汇编文件
.o目标文件即二进制文件
.a静态库文件
.so共享库文件

存储空间的单位

  • Bit 比特 一个二进制位,只能存储0或1,计算机中存储数据的最小单位
  • Byte 字节 八个二进制位,计算机存储器描述存储容量的基本单位
  • KB 1024字节
  • MB 1024KB
  • GB 1024MB

数据类型

为什么要进行数据分类

  1. 现实生活数据自带类别属性
  2. 对数据分类可以节约空间,提高运行速度.

C语言中的数据分类

  1. 自建 程序员自己设计的类型: 结构 联合 类
  2. 内建 C语言自带的类型
    1. 整型:
      1.

​ 2.浮点型: 有小数部分的类型

​ float 单精度 4

​ double 双精度 8

​ long double 12/16

​ 小数点后六位有效,运算时间远大于整型.

​ 3.模拟型:

​ 字符型:char 字符就是符号或者图案,在计算机中存储为整数.根据ASCII码转换.

​ 布尔型:bool, 使用需要加头文件<stdbool.h>.非零值为真(true),零为假(false).

变量与常量

变量的输入与输出

​ 类型占位符: 表示传递变量的类型

​ signed char short int long long long

​ %hhd %hd %d %ld %lld

​ unsigned %hhu %hu %u %lu %llu

​ float %f

​ double %lf

​ char %c

int printf(const char *format,…)

功能:打印数据

format:双引号包含的提示信息和占位符

​ …:变量名

返回值:

int scanf(const char *format,…);

功能:输入数据

format:双引号包含的占位符

…:变量名地址列表

返回值:成功输入的变量的个数

常量: 程序运行期间不能改变的值

​ 100 默认 int 类型

​ 100l long

​ 100ll long long

​ 100u unsigned int

​ 100lu unsigned long

​ 100llu

​ 3.14 浮点数默认double

​ 3.14f float

​ 3.14l long double

格式化输入与输出

%nd 显示n个字符宽度 不够补空格,右对齐,多了不限制,

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

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

%n.mf 显示n个字符宽度, 不够补空格,左对齐,m表示小数点后几位,不够补零,四舍五入.

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

运算符效果
自变运算符 ++/–使变量的值自动加一减一
前自变 ++/–num,后自变 num++/–不要在一行多次使用自变用算符
算数运算符 + - * / %
关系运算符
逻辑运算符
自变运算符
自变运算符
自变运算符
  • 使用运算符要注意运算规则和优先度

  • 算数用算符 + - * / %

    • 整数/整数 结果只能是整数
      • 10/3 -->3
      • 10%3 -->1
    • / % 除数不能为0;会产生运行错误.
  • 关系运算符

    • > < >= <= == !=
      • 比较结果 0 或 1,可连续参与运算.
        • 例如:n = -1; 10< n < 20;结果为真;
  • 逻辑运算符: && || !

    • 取反优先级比较高
    • 把运算对象转换成逻辑值,0转换为假,非0转换成真—??
    • A && B 一假全假 运算结果 也是0,1;
    • A || B 一真全真
    • 短路特性
    • && 的优先值大于||
    • ! 求反
  • 三目运算符

    • A ? B : C A为真则执行B,否则执行C
  • 赋值运算符

    • a += 10;
  • 位运算符

    • .

分支语句

  • if(表达式1)

    {

    ​ 表达式为真(非零),执行此处代码

    }

    else if(表达式2)

    {

    ​ code…

    }

    else

    {

    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值