【C语言】笔记
1.计算机和编程语言
1.1第一个C程序
1、程序框架
#include <stdio.h>
int main()
{
return 0;
}
2、输出
- printf(“Hello World!\n”);
- ""里面的东西是字符串,printf会把其中的内容原封不动输出
- \n表示在输出结果后面换一行
3、程序中的错误
编译器会给出提示
4、不用中文输入
5、可移植 C/C++(C标准除文件操作外没有操作系统硬件资源接口,Windows Linux接口不一样)
跨平台 Java python
1.2 关于那个0
0与o不一样,0中间有斜杠
1.3 Mac OS X如何在命令行编辑、编译、运行C程序
gcc hello.c //编译C程序
ls -l //显示编译过程
./a.out //运行,./是Linux中的一种安全命令
1.4 计算
#include <stdio.h>
int main()
{
printf("%d\n",23+43) //%d说明后面有一个整数要输出在这个位置上
printf("23+43=%d\n",23+43)
return 0;
}
1.5 四则运算
四则运算 | C符号 |
---|---|
+ | + |
- | — |
x | * |
➗ | / |
() | () |
%表示取两个数相除以后的余数
1.6 main()的样子
- return主要是为了告诉电脑程序运行结束,不返回给用户。
- void main()表示主函数没有返回值,可以不加return;加了return,表示程序结束不继续往下执行;return 0会报错。所有标准均不认可该写法
- int main()表示主函数返回值为整型,返回一个值看是否为0来判断程序是否正常退出(返回值整型有取值范围,过大会导致程序报错),该种写法在C99和C11标准中不被允许。
- int main(void)为标准写法
1.7 VS使用、及编译
1、system(“pause”); 让窗口停留
2、程序变为exe经过两步,一步是编译,一步链接
2.数据类型、运算符与表达式
2.1 数据类型
(1)
- 基本类型:整型int、字符型char、实型(浮点型)可分为单精度和双精度
- 构造类型:数组【】、结构型struct、联合union、枚举enum
- 指针类型*
- 空类型void
(2) C语言的关键字
C语言中的关键字
2.2 常量
- 整型 1
- 实型 3.12
- 字符型 ‘2’
- 字符串型 “”是个空串
2.3 变量
(1)需要:
- 有地方放输入的数字
- 有办法输入数字
- 输入的数字参与计算
(2)change.c
change.c
#include <stdio.h>
int main()
{
int price = 0; //这一行定义了一个变量,变量名是price,类型是int,初始值是0。
printf("请输入金额(元):");
scanf ("%d",&price); //输入是以行为单位进行的,行的结束标志是你按下了回车键。在你按下回车键之前,你的程序不会读到任何东西。
int change = 100 - price;
printf("找您%d元。\n",change);
return 0;
}
变量的作用:变量是一个保存数据的地方,保存了数据,才能参加到后面的计算中
(3)变量定义的一般形式 <变量类型> <变量名称>;
int price;int amount;int price,amount;
(4)标识符
构造基本原则:只能由字母、数字和下划线组成,数字不可以出现在第一个位置上,C语言关键字(保留字)不可以用作标识符
-
C语言的保留字
(5)C语言区分大小写的,变量先定义后使用、见名知意
2.4 整型数据
2.4.1 符号常量
#include <stdio.h>
#define PI 3 //PI就是符号常量
int main()
{
int a=3;
a=5;
//PI=4; //符号常量不可赋值
printf("%d\n",PI)
}
2.4.2 整型常量的不同进制
- 二进制与八进制的转换
将二进制数每三位转换为一位八进制数,最后在前面加一个0 - 二进制与十进制的转换
把二进制字符串从最高位(左边第一位)开始用商乘以2再加余数(该位的数字),如此循环,左边第一位的商肯定是0;
把十进制除2取余数,并把所有的余数倒排,不够八位在前面加0。 - 二进制与十六进制的转换
四位计算,高位不足补0
内存使用十六进制 (x86架构是小端存储,低位在前,高位在后)
#include <stdio.h>
int main()
{
//int i=123;
int i=0x7b;
printf("%d\n",i); //%d表示以十进制方式输出某一个整型数
}
1 位 1 bit
1字节 1 byte = 8 bit
1Kb = 1024 字节
1Mb = 1024Kb
地址是4个字节
int i 是4个字节
使用scanf时一定要用取地址符&
2.5 浮点型数据
2.5.1 浮点型常量float
- 小数形式 0.123
- 指数形式 3e-3(e之前必须有数字,e后面的指数只能为整数)
#include<stdio.h>
int main()
{
float f = 1.234; //e代表10的幂次
printf("%f\n",f); //%f就是以浮点形式输出对应数据
}
2.5.2 浮点型变量
- 通过float f 来定义浮点变量,f占用4个字节的空间
2.6 字符型数据
2.6.1 字符型常量
- 用单引号扩起来的一个字符,且只能包含一个字符! 例:‘a’ ‘1’ ’ ’
- 以\开头的特殊字符称为转义字符 \n换行 \b退格 \\反斜杠
2.6.2 字符数据在内存中的存储形式及其使用方法
#include<stdio.h>
int main()
{
float f = 1.234; //e代表10的幂次
printf("%f\n",f); //%f就是以浮点形式输出对应数据
char c = 'a';
printf("%c\n",c);
}
ASCII码表
#include<stdio.h>
int main