首页 > 编程知识 正文

c语言变量名的命名规则(c语言什么是常量什么是变量)

时间:2023-05-06 19:52:26 阅读:96729 作者:4945

我们对数据类型、常量和变量有了初步的了解,完成了基本的数据类型。接下来,让我们详细介绍变量和常量。

00-1010之前,我们介绍了什么是常数,即程序运行过程中不能改变的量。常量分为整数常量、浮点常量、字符常量、字符串常量和符号常量。

常量

1.1十进制整数

这个不难理解,就是我们常说的自然数。例如:

1.2八进制整数

八进制数字表示为以“0”开头的数字。诸如

1.3十六进制数

与八进制不同,十六进制整数以“0x”开头,例如:

1.4二进制数

与八进制不同,十六进制整数以“0b”开头,例如:

整数也可以有后缀,是U和L的组合,U代表无符号整数,L代表长整数。后缀可以是大写或小写,U和L的顺序可以是任意的,例如:

00-1010 2.1十进制十进制形式

这里的后缀“f”是上一节提到的,因为如果不加上这个“f”,计算机会分配一个双类型的空间,而它前面的变量类型是float,这可能会导致错误(取决于编译器)。

2.2十进制指数形式

00-1010 3.1普通字符

常量需要用单引号或ASCII码值表示。ASCII是我们在最后一节所说的,我们忘记了我们的朋友可以复习它。

3.2转义字符

在C语言中,反斜杠“”加上一个字符表示一种特殊的含义,称为转义字符。以下是转义字符表:

我们之前在hello world函数中提到过,“n”是一个换行符和一种转义符。

00-1010上一篇文章中说字符串的表达式是用双引号''表示的,字符串的数据类型不是C语言直接定义的,而是C语言中有一个,所以我们通常用数组来表示,例如:char str[]=" ABC ";

这句话的意思是定义一个字符数组,你首先不能理解。“=”的右侧代表一个字符串常量。

需要注意的是,字符串的存储是特殊的,系统会自动在字符串后添加一个' '符号。这个符号可以在转义字符表中找到,它代表一个空字符。计算机用它来表示字符串的结尾。因此,“ABC”实际上是内存中的“ABC”。

所以,问吧

题来了。请问"a"和'a'有什么区别呢?(上一节我们提过)

5. 符号常量

符号常量又叫标识常量,还能称之为宏常量,名字很多,但都是一个意思。在C中,有一种简单的定义常量的方式:使用#define宏定义。

一般格式:#define 标识符名称(常量名) 被替换的目标(常量)

我们来看一个例子:

上面的代码中由于有了第一句,第二句就相当于:double a = 3.14 * 2;

值得注意的是,这种宏常量的表示方法相当于把定义中常量位置的东西原封不动地写在常量名的地方。经常有这样的题目:

这一题的答案是多少?

比较简单,a = 2 * 5 + 1 = 11,所以打印是11,记住,遇到这种问题,整体带入就可以了,不要强行加括号。

总结一下就是:define可以替换常量、简单的运算公式、C语句。其本质:是字符串的整体代换!我们一般把宏定义放在头文件的下面,函数的上面,这样显得有层次感。

变量

常量讲完了,我们来说说变量。之前初识常量、变量的时候说过,变量是程序运行时可以发生改变的量。

定义格式: 存储类型 数据类型 变量名

哎,好像和之前有一丢丢不一样啊,我们前面定义变量都是int a;就可以了,这个int是数据类型,那这个存储类型是什么鬼,别急,先挖个坑。

变量其实只不过是程序可操作的存储区的名称,我们在数据类型的时候,已经详细介绍了每种变量所占的字节数和数据范围,这里就不再重复了。

那这里我们还要细说什么呢?

如果有细心的同学应该会发现,我们定义变量的时候通常会见到int a;和int a =10;这两种形式,那这两种有什么区别呢?

首先,我们要搞清楚三个概念:定义、声明和初始化。

extern int i;就是一种声明,这里我们用到了一个关键字extern,它的作用就是可以引用其他文件中的变量i,是不占存储空间的。

int i;就是定义,是开辟了4个字节的存储空间。

int a = 10;在定义变量的同时给变量赋值,称为初始化。

变量分为全局变量和局部变量,怎么理解呢?

通俗地看,全局变量就是{}外的变量,局部变量就是{}内的变量。

总结

本节给大家详细介绍了变量和常量,其中变量分为全局变量和局部变量,常量分为整型常量、浮点型常量、字符常量、字符串常量和符号常量。同时我们区别了声明、定义和初始化,以及提到一个存储类型,那什么是存储类型呢?下一节介绍。

上节作业分析

以下代码的输出结果是什么?

首先看第一题,定义一个字符变量a,c = ‘a’ + 1就是字符b,所以打印值为b(这里是按%c打印的);再来看第二题,a = 1,b = 2,执行第二句a = 1 + 2 = 3,b = a - b(注意,这里的a经过上一次变成3) = 3 - 2 = 1,a = 3 - 1 = 2。所以打印为2,1。有没有发现a和b互换了。

本节作业

1.下列程序的输出结果是16.00,请填空

#include <stdio.h>

int main()

{

int a = 9, b = 2;

float x = _____,y = 1.1, z;

z = a/2 + b*x/y + 1/2;

printf("%5.2fn", z);

return 0;

}

2.以下程序运行后的输出结果是:( )

#include <stdio.h>

#define S(x) 4*x*(x)+1

int main()

{

int i=6,j=8;

printf("%dn",S(i+j));

return 0;

}

温馨提示:第一节有一个很奇怪的链接,大家记得保存哦~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。