一、常量与变量
(一)、概念
常量:不可能发生变化的数据称为常量,C语言中的常量并非仅限于数值型的“常数”,还包括字符,字符串,符号常量和常变量等。
变量:变量是内存中的一段存储区域*;**
程序之所以需要变量,是因为在程序运行过程中有些数据需要记住,变量就是用来记住这些数据的;
变量的存储数据是不固定的,可以改变
CPU在存储数据时一般情况下会采用小端模式,即先存低字节,再存高字节
(二)、变量的类型
类型 | 表示 | 存储方式 | 存储大小 |
---|---|---|---|
字符型 | char | ASCII码 | 1字节 |
短整型 | short | 补码 | 2 字节 |
整型 | int | 补码 | 2 或 4 字节 |
长整型 | long | 补码 | 4字节 |
无符号短整型 | unsigned short | 补码 | 2 字节 |
无符号整型 | unsigned int | 补码 | 1字节 |
无符号长整型 | unsigned long | 补码 | 4 字节 |
浮点型 | float | IEEE754 | 4 字节 |
双精度浮点型 | double | IEEE754 | 8 字节 |
变量的不同类型表示不同的数据,变量的短长,单双精度是为了合理分配内存空间,提高运行效率
变量类型输出
#include<stdio.h>
int main()
{
int a; //定义整型变量 a
char b; //定义字符型变量 b
float c; //定义浮点型变量 c
double d; //定义双精度浮点型变量 d
a=2001; //为变量赋值
b="jianghu";
c=10.05;
d=122.3536272828;
printf("江湖%d\n",a); //输出
printf("江湖:%d——江湖2001!\n",b);
printf("生日_date:%2f\n",c);
printf("小数%13.10f\n",d); //浮点型用“%f”表示占位符
return 0;
}
C语言中还有一类特殊的变量,这种变量用来存储某种实体的地址,这里所说的实体包括变量,数组和函数。
存储地址的变量称为指针变量
指针变量在内存中所分配的字节数与int型变量相同
C语言中,并没有给变量规定大小,但可以用运算符sizeof()求得某种类型或某项数据在内存中占用的字节数
使用时要在括号中写上类型名,变量名或表达式;
char a;
float b;
printf("%d,%d\n",sizeof(char),sizeof(a));
printf("%d,%d\n",sizeof(float),sizeof(b));
变量的存储大小(占字节数):
#include<stdio.h>
int main()
{
printf("%d\n",sizeof(char));
printf("%d\n",sizeof(int));
printf("%d\n",sizeof(short));
printf("%d\n",sizeof(long));
printf("%d\n",sizeof(long long));
printf("%d\n",sizeof(float));
printf("%d\n",sizeof(double));
printf("%d\n",sizeof(unsigned int));
printf("%d\n",sizeof(unsigned short));
printf("%d\n",sizeof(unsigned long));
return 0;
}
输出结果:1,4,2,4,4,8,4,2,4
变量的分类:局部变量和全局变量
#include<stdio.h>
int a=2; //全局变量
int main()
{
int a=22; //局部变量
printf("%d\n",a);
return 0;
}
局部变量和全局变量名称相同是可以同时存在,但在执行时局部变量优先,所以建议局部变量和全局变量名称尽量不要相同
局部变量和全局变量的适用范围有差异,全局变量是由于全局范围均可执行,局部变量仅适用于局部*,局部变量的作用域是定义变量的函数体内,全局变量的作用域是整个项目工程。
(三)、变量
1.变量定义的格式
普通变量的定义格式:用类型名开头,加一个空