希望uu们能够给一个小赞赞哦 !!!!!!
目录
一.数据类型
1.字节是什么?
2.各类型变量占多少字节?
二.常量与变量
1.定义变量的方法
1.1变量的分类
1.2变量的作用域和生命周期
2常量
2.1字面常量
2.2const修饰的常变量
2.3#define定义下的标识符常量
2.4枚举常量
三.mian函数,printf,scanf的使用
1.main函数的基本使用
2. printf的使用
3.scanf的使用
类型 | 名称 | 字节 | 表示范围 | 替换字符(printf) |
---|---|---|---|---|
char | 字符数据类型 | 1 | -128~127 | %c |
short | 短整型 | 2 | -32768~32767 | %hd |
int | 整形 | 4 | -32768~32767 | %d |
long | 长整型 | 4 | -2147483648~2147483647 | %ld |
float | 单精度浮点数 | 4 | -3.4* 10-38 ~ 3.4* 1038 | %f |
double | /双精度浮点数 | 8 | -1.7E-308~1.7E+308 | %lf |
- 字节是什么?
- 各类型变量字节字节占多少?
电脑有着32位/64位,代表着32/64根地址线,通电后,电信号转换成数字信息:1和0组成的二进制序列
对于32位地址线,以下的32串
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 最终:管理2^32个内存单元
2^32=4294967296
4294967296bit/8=8536870912byte
/1024=524288kb
/1024=512MB
/1024=0.5GB
char -1byte = 8 bit--8个地址
最终:一个内存单元是一个字节,然后分配地址。
#include
int main()
{
printf("%d", sizeof(char));//1
printf("%d", sizeof(short));//2
printf("%d", sizeof(int));//4
printf("%d", sizeof(long));//4
printf("%d", sizeof(long long));//8
printf("%d", sizeof(float));//4
printf("%d", sizeof(double));//8
printf("%d", sizeof(long double));//8
return 0;
}
sizeof是运算符(操作符),而且是唯一一个以单词形式出现的运算符,它用来计算存放某一个量需要占用多少字节。
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)。
不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
int age = 150;
float weight = 45.5f;
char ch = 'w';
- 全局变量
- 局部变量
#include
int global = 2019;//全局变量
int main()
{
int local = 2018;//局部变量
//下面定义的global会不会有问题?
int global = 2020;//局部变量
printf("global = %d", global);
return 0;
}
总结:
上面的局部变量global变量的定义其实没有什么问题的!
当局部变量和全局变量同名的时候,局部变量优先使用。
不建议全局变量,局部变量的名字写成一样的。
作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用 的 而限定这个名字的可用性的代码范围就是这个名字的作用域。
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
生命周期 变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
3.14;//字面常量
1000;//字面常量
#include
int main()
{
//const 修饰的常变量
const float pai = 3.14f; //这里的pai是const修饰的常变量
pai = 5.14;//是不能直接修改的!
int arr[10]={0};//数组的组成;数组的元素类型(int)数组的名称 [常量表达式]
int n=10 ;
int arr2[n]={0};//支持c99标准的 可以编译成功
//变长数组
const int m = 10;
int arr3[m]={0};//此时虽为常变量,但还是属于变量
return 0;
}
1.数组的组成:
数组的元素类型 数组的名称 [常量表达式]
eg: int arr[10] float total[1.0]
2. const 修饰的常变量
上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了 变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,此时句有了一定的常属性所以叫常变量。
3.变长数组
c99中引入了变长数组的概念,允许数组的大小用变量来制定,如果编译器不支持c99中的变长数组,那就不能使用 // 看不懂的,不用就纠结,先记着
#include
int main()
{
#define max100//define 定义下的标识符常量
max=10;
printf("max = %d\n",max);
return 0;
}
此时就产生了报错,所以define定义下的标识符常量,是不能修改的。
#include
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
//枚举常量演示
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
//注:枚举常量的默认是从0开始,依次向下递增1的
return 0;
}
枚举常量
固然就是可以一一列举的常量,特性就是从0默认开始的,依次向下递增1的。
//如果此时MALE=3 赋上一个值,系统就会报错。
#include
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("sum = %d
", sum);
return 0;
}
- main函数是程序的入口
- 一个工程main函数只能有且仅有一个
1.printf 函数的一般格式
printf(格式控制,输出表列)
例如:printf("%d %d\n ", a,b);//先简单的进行了解
1.scanf 函数的一般格式
scanf(格式控制,输入表列)
例如:scanf (" %lf %lf %lf ",&a,&b,&c);
输入:1 2 3
输出:1.0 2.0 3.0 会按照格式控制的类型,输入相应的类型。
此时:地址符& 叫做取地址,&a表示取到了变量a在内存中的地址。
//先简单的进行了解
总结:其实学c语言可以变得在走火入魔的,从初识到后期的进阶,这个过程很漫长,要努力的还有很多,本人能力有限,请友友指正出来!!!