C语言——变量与常量

目录

一、变量

1.格式

(1)存储类型:

(2)数据类型:

(3)变量名:

2.分类:局部变量和全局变量

二、常量

1.整型常量

2.字符型常量

3.字符串常量

4.浮点型常量

5.标识常量

(1)格式

(2)注意:


一、变量

1.格式

变量的格式:存储类型+数据类型+变量名

(1)存储类型:

决定变量存放的位置

存储类型有auto,static,extern,register四种

auto(一般隐藏)static(静态)extern(外部)register(寄存器)

1.进入代码块时系统可以自己为变量分配内存,退出块时,系统清除分配的内存,变量值丢失,不保留。

2.若重新进入则重新分配。

1.在函数内部出现时:允许程序退出此函数时,函数内定义的局部变量保存其原有值。

2.在函数外部出现时:与extern相反,只允许本文件访问

1.在b文件中可以使用a文件定义的变量

2.不会消失,整个执行期间存在

eg : 在b文件输入extern int c;可以调用a文件中对变量c赋予的值。

1.目的是改善执行速度,可以把寄存器想象成宫廷剧中皇帝身边的“太监”,大臣递交文件需要经过他的手,而此种存储类型register,可以直接使用“太监”作为暂时的内存,加快执行速度。

2.数据类型默认是int(整型)

(2)数据类型:

决定变量开辟空间的大小

常用的数据类型有:int,short,long,char,float,double

名字所占字节取值范围
int整型4-2^31~2^31-1
short短整型2-2^15~2^15-1
long长整型8-2^63~2^63-1
char字符型1-2^7~2^7-1
float单精度浮点型4-3.4e-38~3.4e+38
double双精度浮点型8-1.7e-308~1.7e+308

可以使用sizeof计算数据类型所占空间大小:

#include <stdio.h>
int main(int argc, char const *argv[])
{
    printf("%d\n", sizeof(int));
    return 0;
}

(3)变量名:

遵循标识符命名规则

命名规则:由数字、字母、下划线组成;

                  不能以数字开头;

                  不能和关键字重复;

                   最好见名知意;

2.分类:局部变量和全局变量

局部变量全局变量
存储位置栈区全局区(BSS,数据段)
定义位置函数体内部函数体外部
未初始化时值随机值0
作用域函数内部整个程序
生命周期同函数体共存亡同整个程序共存亡

二、常量

1.整型常量

即使用int,short,long定义的常量,可以定义为八进制、十进制、十六进制

2.字符型常量

使用单引号包裹

将字符变量a定义为字符常量'q':

char a = 'q';

同时也可以使用ASCII码表中字符对应的八进制十进制十六进制数值来定义:

(其中的   \   为转义字符,必须加上才能够定义)

char a = '\x41';//十六进制
char b = '\101';//八进制

3.字符串常量

使用双引号包裹,以\0结束,我们定义时不用输入\0作为结尾,但要知道在程序中默认添加了\0作为字符串结束标志,所以在定义时也要把\0做为一个字符长度算进去,"hello"长度为6。

char a[6] = "hello";

4.浮点型常量

 即使用float,double定义的变量,为了方便可以了解C语言中指数的表示形式

#include <stdio.h>
int main(int argc, char const *argv[])
{
    float a = 3.14e+9;
    printf("%f\n", a);
    return 0;
}

希望此例子可以帮助你理解,e表示指数形式,后面10的几次方就写在e的后面,方便写一些比较麻烦的数值。

5.标识常量

(1)格式

#define SIZE 10

#define  宏名  表达式或变量或常量或代码段

宏名:遵循标识符命名规则,一般用大写,为了和普通变量区分开

(2)注意:

宏定义只是单纯的替换,不进行计算
#include <stdio.h>
#define N 6
#define M N + 2
int main(int argc, char const *argv[])
{
    printf("%d\n", N + M / 2 + 1);//原式 = 6 + 6 + 2 / 2 + 1
    return 0;
}

  • 21
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值