C语言的编译和执行
1.编译
形成目标代码/文件。常见拓展名为“.o”或“.obj”
2.连接
将目标代码与C函数库链接,并将源程序所用的库代码与目标代码合并
形成最终可执行的二进制机器代码(可执行程序)
3.执行
在特定的机器环境下运行C应用程序
内存如何存放数据
计算机使用内存来记忆或存储计算时所使用的数据
内存(main memory)也称为主存或随机访问存储器(Random Access Memory,RAM)
变量
变量是计算机中一块特定的内存空间。由一个或多个连续的字节组成
变量的命名
通过变量名可以简单快速地找到在内存中存储的数据
C语言变量名命名规则:
- 只能由字母、数字、下划线3种字符组成
- 开头必须是字母或者下划线
- 不能使用关键字,比如 int、double、main...
数据类型
- 整形:整型 int、短整型 short int、长整型 long int
- 非整形:单精度浮点数 float、双精度浮点数 double
- 非数值:字符型 char
- 其他类型:构造类型、指针类型、空类型等
变量的声明及使用
声明变量
数据类型 变量名;
注意:int、float、double直接声明的变量会有一个默认值 0、0.00...
#include <stdio.h>
void main()
{
int num; //声明变量
}
定义时初始化变量
数据类型 变量名 = 值;
定义后初始化变量
数据类型 变量名;
变量名 = 值;
#include <stdio.h>
void main()
{
int num1 = 888; //声明并初始化
int num2; //先声明后初始化
num2 = 999;
}
注意:
- 变量名注意不要重复
- 一条语句可以声明多个类型相同的变量
#include <stdio.h>
void main()
{
int age,height,width;//声明多个变量
}
打印整型变量
#include <stdio.h>
void main()
{
int num1 = 10;
int num2 = 8;
printf("%d口心思,思君思国思社稷。\n%d目共赏,赏花赏月赏秋香。\n",num1,num2);
}
转换说明符
- 转换说明符确定变量在屏幕上的显示方式
- %表示转换说明符的开头
- int类型的占位符是 %d
- %%将打印一个%
打印单精度浮点型变量
#include <stdio.h>
void main()
{
float width = 2.5f; //宽
float height = 4.0f; //高
float s = width * height; // 计算面积
printf("长方形面积为:%f\n",s);
}
注意:
- float类型变量赋值时需要在数值后面加一个f
- float类型的占位符是 %f
- %.2f 可以控制数字的显示精度
打印双精度浮点数变量
#include <stdio.h>
void main()
{
double r = 2.5; //半径
double a = 3.14*r*r; //圆的面积
printf("圆的半径为%lf,圆的面积为%.2lf\n",r,a);
}
注意:
- 通常小数被存储为double类型,如2.0和9.0
- 数字后使用L时,数字成为 long double 类型,如4.76L
- %.2lf 可以控制数字的显示精度
打印字符类型
#include <stdio.h>
void main()
{
char ch = 'A'; //字符
printf("打印字符为:%c\n",ch);
}
注意:
- %c 代表打印单个字符类型
- %d 可以打印相对应的ASCII码
//打印字符对应的ASCII码
#include <stdio.h>
void main()
{
char ch1 = 'a'; //小写字母a
char ch2 = 'A'; //大写字母A
char ch3 = ' '; //空格
printf("字符\tASCII码\n");
printf("%c\t%d\n",ch1,ch1);
printf("%c\t%d\n",ch2,ch2);
printf("%c\t%d\n",ch3,ch3);
printf("%c\t%d\n",ch1-32,ch1-32);
}
printf函数和转换符
转换字符 | 输出 | 示例 |
%d or %i | 有符号十进制整数 | printf("%d心%i意",3,2); |
%c | 单个字符 | printf("工作顺%c","L"); |
%s | 字符串 | printf("希望小李%s","心想事成"); |
%f | 单精度浮点数,默认精确到6位小数 | printf("圆周率:%.2f\n",3.1415); |
%lf | 双精度浮点数 | printf("圆周率:%.2lf\n",3.1415); |
%% | 打印一个% | printf("失业人口达到88%%"); |
转义序列小结
转义序列 | 名称 | 描述 |
\a | 蜂鸣报警 | 在一些系统中警报不起作用 |
\b | 退格 | 将光标回退一格 |
\f | 换页 | 将光标移到下一页的开始处 |
\n | 换行 | 将光标移到下一行的开始处 |
\r | 回车 | 将光标移到当前行的开始处 |
\t | 水平制表 | 将光标移到下一个水平制表位置 |
\v | 垂直制表 | 将光标移到下一个垂直制表位置 |
\' | 单引号 | 用于打印单引号、双引号、问号、反斜杠等字符(这些字符用于定义字符常量,是printf函数的一部分,若直接使用会造成混乱) |
\" | 双引号 | |
\? | 问号 | |
\\ | 反斜杠 |
scanf函数
概述
C函数包含了多个输入函数,scanf是最通常的一个,可以从键盘读取不同格式的数据
基本用法
#include <stdio.h>
void main()
{
int num;
printf("请输入数量:");
//&取地址
scanf("%d",&num);
}
注意:
- 格式字符串的用法与printf函数类似
- 读取基本类型的值时,变量前面加 & 符号
转换字符串 | 含义 |
%d | 把输入解释成有符号整型 |
%c | 把输入解释成字符型 |
%s | 把输入解释成字符串 |
%f | 把输入解释成单精度浮点数 |
%lf | 把输入解释成双精度浮点数 |
实战演练:
❥(^_-) 我的学习之路任重道远,咱们下期见~~~