今日长缨在手,何时缚住苍龙。这篇文章主要讲述细说C语言相关的知识,希望能为你提供帮助。
概述
#include<
stdio.h>
int main()
int a,b;
scanf("%d%d",&
a,&
b);
printf("%d",a+b);
return 0;
hello world
- 头文件
.h
- 主函数
main()
是主函数,每一个 c 源程序都必须有,且只能有一个< u> 主函数< /u> 。 - c 语言规定:对
scanf
和printf
可以省去对其头文件的包含命令; - 源程序中用到的变量都必须先说明后使用;
- 自定义函数也要在主函数中先说明。
stido.h
是标准输入输出函数的头文件。scanf
和printf
(格式输入函数和格式输出函数)参数表由以下两个部分组成“格式控制串”,参数表.
- 一个C语言源程序可以由一个或多个源文件组成。
- 每个源文件可由一个或多个函数组成。
- 一个源程序不论由多少个文件组成,都有一个且只能有一个
main
函数,即主函数。 - 源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源
- 每一个说明,每一个语句都必须以分号结尾。< u> 但预处理命令,函数头和花括号“”之< /u>
- 标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再
数据类型、运算符和表达式数据类型可分为:
- 基本数据类型,
- 整型、
- 在内存中,数值以补码表示。
- 正数补码与原码相同,
- 负数补码为绝对值按位取反再加 1。
- 整型变量分类:
- 基本型、short int 在内存中都占两个字节,
- 长整型占 4 字节。
- 无符号型unsigned 与上面三种类型匹配使用。
- 字符型、
- 字符常量 用单引号括起来的一个字符。把数字括起来就不能当做数字进行数值运算。
- 转义字符 了解常用转义字符的含义。如\\n,\\t,\\b,\\r,\\,\\,\\" ,\\a,\\ddd,\\xhh
- 字符变量
- 每一个字符变量分配一个字节空间,因此只能存贮一个字符。
- 实际上字符是以 ASCII 码
- 字符串常量由双引号括起来。"
CHINA"
,"
C program"
- 字符常量可以赋值给字符变量,但是 C 语言中没有相应的字符串变量。
- 字符串常量占的内存字节数等于字符串中字节数加 1,增加的一个为" \\0" ,结束符号。如" a" 的存放占 2 字节,a的存放占 1 字节。
- 实型(浮点型)、
- 实型变量
- 实型数据一般占 4 自己内存空间,由数符(+、-)、小数部分、指数三部分构成
- 双精度占 8 字节空间,可提供 16 位有效数字。
- 长双精度占 16 字节空间,可提供 19 位有效数字。
- 定义规则与整型相同。
- 实型常量(也称为浮点型)
- 表示方法:十进制,如 5.789;指数形式,aEn(a 为十进制数,n 为十进制整数)
- 实型常数都按双精度 double 型处理。
- 标准 c 允许浮点数使用后缀,f 或 F,表示该数为浮点数。
- 枚举类型
- 构造数据类型,
- 数组类型、
- 结构体类型、
- 共用体类型
- 指针类型,
- 空类型
允许在变量定义时候赋值,但是不能连续赋值,如 a=b=c=5 是不合法的。
各类数值型数据之间的混合运算
- 若参与运算量的类型不同,则先转换为同一类型,然后进行运算。
- 转换按数据长度增加的方向进行,以保证精度不降低。
- 所有的浮点运算都是以双精度进行的。
- char 型和 short 型参与运算时,必须先转换为 int 型。
- 赋值运算中,赋值号两边的数据类型不同时,赋值号右边量的类型将转换为左边的类型。这可能导致精度丢失,丢失的部分按四舍五入。
- 除法参与运算量均为整数时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。如 20/7 结果为 2,20.0/7=2.857143
- C 语言中左结合性指自左至右运算,如 x+y+z,=号具有右结合性。单目运算符、三目运算符、赋值运算符具有右结合性。c 语言中,有 15 个优先级,1 级最高,15 级最低。
- 求余运算符要求参与运算的均为整型。
- 单目,双目运算符的概念。
- 注意理解++i 与 i++的区别。++i 表示在执行++i 所在语句时先有一条 i=i+1 指令,i++表示在执行 i++所在语句之后有一条 i=i+1 指令。
- C 语言中逗号也是一种运算符。其功能是把两个表达式连接起来组成一个表达式
表达式 1,表达式 2
- 其求值过程是分别求两个表达式的值,并以表达式 2 的值作为整个逗号表达式值
如 y=((x=2+2),3+3),则 y 的值为 6
推荐阅读
- cut:选取字段
- 网络协议之:Domain name service DNS详解
- Flutter 专题82 初识 Flutter Stream#yyds干货盘点#
- nginx实现反向代理
- #yyds干货盘点# Phaser详解
- appache优化
- 好的测试数据管理,到底要怎么做()
- 卡牌大师(玩转“洗牌算法”,幸运女神在微笑 (*^_^*))
- Java8 判空新写法!