C语言入门基础理论知识(二)

常量

在程序运行过程中,其值保持不变的量称为常量。

整型常量

  • 十进制:用数码0~9、正负号表示的十进制整数。
    在十进制整型常量后加小写字母l或大写字母L表示数
    例如:64L、65415l
  • 八进制:以数字0开头,用数码0~7、正负号表示的整数。
    在八进制整型常量后加小写字母l或大写字母L表示数

例如:027、036、-015

  • 十六进制:以数字0和小写字母x或大写字母X开头,用数码0 ~ 9或小写字母a ~ f或大写字母A~F、正负号表示的十六进制整数。
    在十六进制整型常量后加小写字母l或大写字母L表示数。

例如:0xa8、0X59、-0X39

实型常量

  • 十进制小数形式(定点形式):由数码0~9、正负号和小数点(必须有小数点)组成的十进制小数表示的实数。

例如:3.14、-0.271、0.0、0.、.6

  • 指数形式(浮点形式):由尾数、字母e或E、阶码三部分组成,其中尾数为十进制小数或整数,阶码为-308~308的十进制整数。

例如:3.14159e2表示十进制3.14159102 、31415.9E-2表示十进制数31415.910-2。

字符型常量

用单引号括起来的单一字符(包括转义字符)称为字符型常量。

例如:’a’、’A’、’2’、’\n’ 、 ’\101’

  • 这里重点介绍转义字符
    以反斜杠”\”开头,后跟一个规定的字符或数字串,用来表示一个字符,这种表示形式称为转义字符
    在这里插入图片描述

变量

  • 变量是在程序运行过程中,其值可以改变的量。
  • 这里要注意的是每一个变量在使用前都需要进行类型定义,即==“先定义,后使用”==
  • C语言的变量有操作属性存储属性两种属性。
  1. 操作属性由数据类型来决定,它规定了变量的存储空间的大小(即存储长度)、取值范围所允许的操作
  2. 存储属性由存储类别决定,他决定了所定义的变量在哪里存放,即变量的存储机构是什么;何时为其分配存储空间,何时释放它的存储空间,即变量的生存周期;变量其作用的范围有多大,即变量的作用域

变量的定义

变量定义的一般格式:

【类别标识符】 类型标识符 变量名;

说明:

  • 类别标识符用来说明变量名表中变量的存储类别,存储类别标识符包括auto(自动)、register(寄存器)、static(静态)。
  • 类型标识符用来说明变量中变量的数据类型,类型标识符包括short(短整型)、int(整型)、long(长整型)、float(单精度)、double(双精度)、char(字符型)等。

变量的赋值

变量定义后,要想给变量一个确定的值,可以采用数据输入的方法(调用scanf),也可以给变量赋值。
变量赋值的格式:

变量=表达式;

其中“=”为赋值号左端通常必须是变量,左端可以是任意表达式。

变量的初始化

在变量定义时,给变量赋值就称为变量的初始化。

例如:int a=32;

值得一提的是:字符型数据与整型数据具有通用性

//例如以下代码
#include <stdio.h>
int main(){
	 char a,b;
	 printf("请输入一个字符:");
	 scanf("%c",&a);
	 b=a+3; //此处能与整型参与计算
	 printf("%c的后面第三个字符是:%c\n",a,b);
	 return 0;
}
//也就是说char 型数据可以看成整型数据,参与算数运算

自动变量

用存储类别标识符auto定义的变量是自动变量,自动变量的存储空间是在程序运行时分配的,分配和释放由系统自动完成。
注意:

  • 在定义变量时,缺省存储类别标识符系统默认是自动变量
  • 自动变量的存储空间在程序运行期间分配和释放,称为动态存储
  • 自动变量只是在定义它的那个局部范围内才起作用,称为局部变量
  • 自动变量在赋值前,它的值是不确定的
  • 自动变量的值不具有继承性

静态变量

用标识符static定义的变量是静态变量。
注意:

  • 静态变量是在编译时分配存储空间,在程序运行结束时存储空间才被释放,称为永久存储
  • 静态变量的初始化是在编译时进行的,如果不显式地为静态变量初始化,系统自动置静态变量的初始化为0或0.0
#include <stdio.h>
int main()
{
	static int x=3;//显式初始化
	static int y;//未显式初始化
	static double z;//未显式初始化
	printf ("x=%d,y=%d,z=%lf\n",x,y,z);
	return 0;
}

输出结果:
输出结果

-静态变量的值具有继承性

#include <stdio.h>
void A(void);//声明函数A
int main()
{
	A();//调用函数A
	A();
	A();
	A();
	return 0;
}
void A(void)
{
	static int x=1;//定义静态变量想,并初始化
	x=x+2;
	printf("x=%d\n",x);
}

输出结果:
在这里插入图片描述

  • 静态局部变量的作用域具有局部性,静态局部变量的值只能在本函数中使用,但生存周期是永久存储
#include <stdio.h>
void A(void);
int main()
{
	int x=10;
	A();
	printf("1:x=%d\n",x);
	return 0;
}
void A(void)
{
	static int y=1;
	y=y+2;
	printf("2:x=%d\n",y);
}

输出结果:
在这里插入图片描述
欢迎大佬指正

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值