011010100011
八进制 03243
十进制 1024+512+128+32+3=1699;
十六进制 0x6a3
c语言:面向过程的语言。
目标:编写程序,第一个程序。
#include<stdio.h> //头文件 提前说名
int main() //主函数。有且仅有一个主函数,代码的执行顺序从主函数开始
//编译代码是从上往下
{
printf("hello word");//输出函数。
}
程序=数据+算法;
数据按照是否可变分为:
常量:不可被改变。
变量:可以被改变。类似一个容器,来存放数据。
:不是变量被改变,而是变量空间存放的东西被改变。
变量在使用前要被定义。
定义变量的方式: 类型 变量名。
sizeof() 计算空间大小的运算符。
定义变量:就是分配空间,分配空间的大小由类型决定。
初始化变量:在定义变量的同时赋初值。
引用变量:引用变量空间的内容,引用空间的大小由类型决定。
除定义变量外,看到变量名就是引用变量。
数据按照基本类型来分:
整型:
整型常量: 整数
整形变量:
定义变量的方式: 类型 变量名。
类型: int整形4字节 short短整型2字节 long长整型4字节。
1字节=8bit
变量名:与标识符的规则相同。
标识符:
1.由字母 数字 下划线组成,且首位不能为数字
2.不能为c语言关键字,不能超过64位。
1010 0101 为什么 -91
负数的存储:
signed(有符号位) unsigned(无符号位)
与类型连用 unsigned int a;
在定义变量时不加unsigned 默认为有符号位。
我们规定有符号为的变量最高bit位为符号位。
如果符号位为1 代表为负数。符号位为0 代表为正数。
规定负数是以补码形式存储。
原码取反为反码 反码加一为补码。 符号位不变化。
1010 0101 补码 0110 6
1010 0100 反码 0101 5
1101 1011 原码
浮点型:float double
浮点型常量:存放小数 十进制 3.14 1.79 5.0
:指数形式 3e-1 e=10 3*e^-1
1234 = 1.234*10^3 =1.234e3
浮点型变量:float单精度浮点型4字节 double双精度浮点型 八字节
精确到小数点后六位。
字符型:char 一个字节
字符型常量:
单引号括起来的 'a' ASCII表里面的内容。
'a'=97 'A'=65 '0'=48
转义字符 : '\n' 换行 '\t' 空格
字符型变量:char 一个字节 char a='a';
只占一个字节 取值范围
赋值时不能超过范围。
格式化标准io:
printf:输出函数,把程序运行结果输出到标准输出设备上。
标准输出设备:显示屏,投影仪
printf("格式化输出",输出项列表);
" "格式化输出:
%d 输出十进制整数
%o 输出八进制整数
%x 输出十六进制整数
%f 输出单精度
%lf 输出双精度
%c 输出字符型
%p 输出空间的地址。
%s 输出字符串
输出项列表:由一个或者多个输出项组成。每个输出项由逗号间隔
输出项:可以是常量 变量 表达式。
注意:
1.各类型之间输出格式不能混淆,字符型和整型可以互通。
2.一个输出项对应一个格式化输出。必须一一对应。
3.%m.nd .n 保留小数点后n位
m 给定输出间距。
当实际间距大于给定间距时,按实际间距输出。
当实际间距小于给定间距时,在前面用空格补齐
-m
当实际间距小于给定间距时,在后面用空格补齐
4.在格式化输出里面 普通字符原样输出,转义字符转义输出。
scanf:输入函数:从标准输入设备,输入到程序中
标准输入设备:鼠标,键盘。
scanf("格式化输入",输出项地址列表);
格式化输入:
%d 输入十进制整数
%o 输入八进制整数
%x 输入十六进制整数
%f 输入单精度
%lf 输入双精度
%c 输入字符型
%p 输入空间的地址。
%s 输入字符串
输入项地址列表:一个或者多个输入项地址组成。
输入项地址:&变量名:
&取地址符 去空间的地址。
注意:在我们输入时可以用空格或者逗号间隔,但是必须与我们的格式化输入对应。
:一个输入项对应一个格式化输入。必须一一对应。