c语言 1 变量和常量
start of my journey
#include<stdio.h>
int main()
{
printf("hello world");
return 0;
}
变量/ 常量
变量是不可修改的量
常量则是可以变化的量
1.定义一个变量, 变量类型,变量名称,初始值(可选)
int kiss =18;
赋值
kiss =18; // 把18这个值赋给kiss 这个int型变量
2.变量命名规则
规则为:数字,字幕,下划线的组合,不能用数字开头
比如 kiss_me kiss_47 name18;
18year 错误! 不能以数字开头, 蛮简单的
3.变量类型
3.1 整型
char /short /int
char char型变量表示 - 128~127 之间的整数 对应 ASCII码
int 表示范围很大的数 -2 147 483 648 ~ 2 147 483 648 大约正负20亿 即2的31次方 ,指数的无穷魅力啊
unsigned signe 符号 unsigned 就是无符号的意思
没了符号 取值范围大概比有符号大了一倍,只需要记住 unsigned char 0~255 unsigned int 0~4 294 967 259 这是一个很大的数字啦
bool 类型
bool 布尔类型 本质上也是一种整型类型,只有两种取值, 真 / 假 即 true/ false
3.2 浮点型
刚说了整型,然后说小数,就是浮点型
double 和 float
4.进制
进制, 这是一个重要的概念
123 =1*100+2*10+3*1 // 十进制
基数是 0 1 2 3 4 5 6 7 8 9 权重是10的次方,即 第一位是10^0 第二位10^1 第三位 10^2 10*10
十六进制,
0 1 2 3 4 5 6 7 8 9 A B C D 基数
每一位权重是16
A2 = A*16^1+2*16^0;
同样 二进制,类似的 明白进制的概念,知道一个数字和它对应进制后自己就可以推导出来
5.变量和内存
5.1 二进制存储
计算机中数字以二进制存储和表示,这是因为二进制只有两个符号,容易用物理量代替(其实这句话,我也没咋理解 ctrl c 来的)
假设有八个物理开关
/ | / | / |
用二进制保存开关信息: 1 0 1 0 0 1 1 0
这意味,一组开关的物理状态可以用数字表示 比如上边 10100110
计算机领域中,每个开关成为 位(bit) 8个位构成一个字节(Byte)
于是,一个字节,就可以表示从00000000(8个0)到11111111(8个1) 共256个数,即2^8;
5.2 内存
内存是用来存储数据的物理器件,内存由多个单元组成,每个单元可以认为是8个物理开关组成,
程序运行时,每个变量实际都对应一块内存。变量的值,就是物理内存里那几个字节里存储的数据。
int a =18; // 变量a有一块内存,内存中存储的数据为18;
上边说道 char int 型变量表示范围差异很大,究其原因也是内存不同,在内存中,char类型变量占一个字节,int型占4个字节
于是char 表示范围 00~FF int 表示范围 00000000~FFFFFFFF
在vs下可以验证也是很好玩的
int main()
{
int a;
char b;
cout << sizeof(a) << endl; //4
cout << sizeof(int) << endl; //4
cout << sizeof(b) << endl; //1
cout << sizeof(char) << endl; //1
cout << "我会变成大佬!" << endl;
system("pause");
return 0;
}
5.3 变量在内存中的表示
在内存中,每个单元都有各自的地址(指针),就像每个人都有自己的身份证号,不存在黑户这一说。
程序运行中,每个变量在内存中都对应了几个内存单元,我们将它在内存单元的首地址(第一个字节的地址),称为变量的内存地址,简称 变量的地址,显然这个地址是一个整数。
比如,在vs中打印一个变量的地址。.
操作符 & 表示区地址,&a 则表示取得a的地址,
5.4 变量的赋值
变量的值其实是变量对应内存单元的值,对变量赋值,就是修改内存单元的值。
常量
常,常量就是不能修改的量。 一般修饰常量 包括 const static extern
c语言部分主要结束const 比如
const int a =18; 表示创建一个int 型的 变量a 再将其修饰为常量,
此时a 可读不可修改