#include <stdio.h> //声明 导入 stdio 这个文件
int main() // main 函数 程序的入口。
{
printf("Hello World!\n");
return 0;
}
// C语言中所有的函数要求 先声明 后使用。 例如本类中 printf这个函数 如果不导入头文件 运行则会报错
/*
* 从源文件到可执行性文件中间经历的过程
* Linux main.c --> a.out
* Windows main.c --> xxx.exe
*
* 详细步骤
* Linux
* 1:预处理 gcc -E xxx.c -o xxx.i 预处理会将声明文件导入该文件中,并且移除代码中的注释,宏的替换 等等
*
* 2:编译 gcc -S xxx.i -o xxx.s 编译会将预处理过的文件编译城汇编文件
*
* 3:汇编 gcc -c xxx.s -o xxx.o 汇编会将编译后的汇编文件转换为二进制文件
*
* 4:链接 gcc xxx.o -o xxx 链接会将目标文件和系统组件还有其他由编译器生成的多个目标文件组合起来
*
*/
/*********************************************************************常量和变量********************************************************************/
/*
*
* 数据类型
* 1:基本类型 2:构造类型 3:指针类型 4:void 空类型
*
* 基本类型
* 1:数值类型 2:char 字符类型
*
* 数值类型
* 1:整形 2:浮点型
* 整形
* 1:短整型short 2:整形int 3:长整型 long 4:long long 长整型
* 浮点型
* 1:单精度float 2:双精度 double
*
* sizeof() 可以获取类型或者变量的大小
*
* 浮点数的表示方式为 符号位 阶码 位数
* eg:123.456
* 0 3 0.123456
* 0.123456 * 10^3 = 123.456
*
* 有效位数 从左边第一个不为0的数字开始
* 1.0000000000001 有效位数是 14个
* 0.0000000100001 有效位数是 6个
*
* float 的有效位数是6~7位
* double 的有效位数是 16~17位
*
* float 的有效位数位 6到7位 后面的就不准确了
* float a = 0.123456789123456789;
* double 的有效位数位 16~17位 后面的就不准确了
* double b = 0.123456789123456789123456789;
* printf("a = %.20f\n",a);
* printf("b = %.20f\n",b);
* 此时打印出的数值和赋予的数值有一定的偏差,在不同的平台偏差会有一定的差异性
* 在32/64位中,float 和 double 的指数位大小位 8位和11位
*
* 计算机不能存储字符,但是可以显示。ASCLL码转换,该表的本质是一种对应关系 ASCLL码包含128个字符 其中96个可显示的字符,还有32个控制字符
* 0 NUL 32 space 48~57 0~9 65~90 A~Z 97~122 a~z A到a相距32
*
*
* 转义字符
* 一个字符本身有一个意义,我们将其赋予另一个意义。这个时候就需要转义字符来控制
* 常用的转义字符 \t 制表符 tab \n 换行 \" 实际上会打印出一个双引号 当需要输出 % 的时候 因为%是占位符,因此要加上 %一个百分号才能打印出一个百分号
* putchar(10) 的本质其实就是 putchar('\n') 在ascll码表中10所对应的就是\n字符
*
* 常量
* 常量是程序中不可改变的量,常量一般以字面量或者宏的形式存在。用于赋值或者参与计算 常量也是有类型的
*
* int i = 30 此时 30 就是常量字面量 是整形
* #define pi 3.141592653 pi 就是宏也是一种常量 是浮点型
*
* char name = 'm' 'm' 字符型常量
* 注意 宏的值在预处理阶段就会被替换到使用到宏的语句中
* gcc -E xxx.c -o xxx.i
* cat xxx.i
*
* 常量也是有类型的
* 0 int型 0.0 double型 0.0f float型 0l long型 0ll long long型 0.0l long double 型
* 变量
* 变量是程序中可以改变的量,变量分为 全局变量和局部变量。注意变量的作用域的问题
*
* 命名规范
* 驼峰命名法,变量名由字母,数字,_,组成。数字不能开头,大小写敏感,变量名不能包含空白字符,变量名不能是C语言中的关键字。
*/
网友评论