复习: 1、C代码变成可执行程序的过程 预处理: 查看宏函数的替换结果,检查宏函数 gcc -E 编译: 理解C代码的底层原理,函数重载 gcc -s 汇编: 生成代码库,静态库、共享库 gcc -C 链接: 是多文件编程的基础 gcc a.o b.O c.o... 2、gcc编译器常用参数 -E -S -C -std=gnu99 -O -I -l库名 -Wall -Werror -D(命令行定义宏) 3、C语言文件类型 .h .h.gch .c .i .S .o .o .a(静态库) .so(共享库) 4、数据类型 signed char 1 %hhd -128~127 signed short 2 %hd -32768~32767 signed int 4 %d 正负20亿 signed long 4/8 %ld signed long long 8 %lld 正负9开头19位整数 unsigned char 1 %hhu 0~255 unsigned short 2 %hu 0~65535 unsigned int 4 %u 0~40亿 unsigned long 4/8 %lu unsigned long long 8 %llu 0~开头20位整数 float 4 %f double 8 %lf long double 12/16 %LF 小数点后6位有效 问:有float x; 如何判断x与零值是否相等 if(x < 0.000001 && x > -0.000001) 5、C变量名取名规则 1、必须由字母、数字、下划线组成 2、必须由字母或者下划线开头 3、不能与32个关键字重名 4、见名知意 6、变量输入输出 printf 提示信息+占位符+变量名列表 scanf 占位符+变量地址列表 %nd %-nd %0nd %n.mf(5舍6入) %g 7、运算符 / % 除数不能为0,浮点数列外(核心已转储) == 变量尽量在右边 ++/-- 尽量不要在一行中多次使用 && || 具有短路特性 注意:运算符也是有优先级的 8、类型转换 自动类型转换:不同类型的数据之间需要先转换为相同的类型数据才能进行运算 1、字节少的向字节多的转 2、有符号的向无符号的转 3、整型向浮点型转 注意:以不丢失数据为基础,适当地牺牲空间 强转类型转换: (新类型)数据 有丢失数据类型风险,谨慎使用 强制类型转换: ---------------------------------------------- 一、跳转语句 goto 可以在函数内任意跳转 它可能会破坏已经设计好的分支、循环语句,因此绝大多数公司禁止使用 但是它在驱动编程时特别适合用于处理异常 标签名: ... goto 标签名; 练习1:把使用循环语句计算N的阶乘 loop: ret * = N; if(--N > 1) goto loop; printf("ret=%d\n",ret); break 1、配合switch使用,关闭执行开关 2、跳出循环,只能跳一层 continue 结束本次循环,直接进入下个循环 return 1、返回一个数据给函数的调用者 2、立即结束函数的执行 练习2:不使用循环语句,计算前N项的斐波那契数列 1 0 1 1 2 3 5 8 13 21... 二、数组 什么是数组:变量的组合,是一种批量定义变量的方式 定义:类型 数组名[数量]; int arr[5]; 使用:数组名[下标]; 下标:从零开始 范围:0~数量-1 初始化: 类型 数组名[数量] = {1,2,3,4...} 1、数组与普通变量一样默认值是随机的,为了安全要对数组进行初始化 2、这种初始化语法只能在定义数组时使用,并且只能逐个赋值,不能整体赋值 3、初始化数据过多,编译器会产生警告并丢弃 4、初始化数据不足,编译器会自动补0 5、初始化的数据可以省略,只写大括号,相当于给所有成员赋0 6、 初始化数组时,长度可以省略,编译器会自动统计数据的个数然后告诉数组 数组的长度 = sizeof(arr)/sizeof(arr[o]) 遍历:与for循环配合,使用循环变量i当作数组的下标 练习3:定义一个长度为10的数组并初始化,计算出该数组的最大值、最小值、平均值 练习4:定义一个长度为10的数组并初始化,进行升序排序 数组越界:为了程序的运行效率是不会检查数组的下标 数组越界的后果: 1、一切正常 2、段错误 3、脏数据 //arr[10] 会修改i的内容,导致脏数据 练习5:定义一个长度为10的数组并初始化,找出数组中第二大的值。不允许排序 作业1:打印99乘法表 作业2:编程解决百钱百鸡问题:鸡翁一值钱五,母鸡一值钱三,鸡雏三值钱一。问各多只 作业3:计算出100~10000之间的素数 作业4:输入一个日期(yyyy-mm-dd),计算该日期距离公元1年1月1日过了多少天 time(null) 作业5:显示以下图形,prinf一次只能输出一个字符 *********** *********** *********** *********** *********** *********** *********** *********** *********** ***********
标准C语言基础知识3
最新推荐文章于 2024-06-23 23:25:40 发布