【C语言必经之路——第2节】常量、变量、转义字符、指针

2023-10-19 23:59

本文主要是介绍【C语言必经之路——第2节】常量、变量、转义字符、指针,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.常量

(1).分类

字面常量

const 修饰的常变量

符号常量

枚举常量

 2.变量

(1).变量命名

(2).定义变量

(3).变量分类

(4). 变量的作用域和生命周期

作用域

生命周期

3.转义字符

4.指针变量

(1).指针变量大小

(2).指针是什么(地址就是指针,指针就是地址)


1.常量

(1).分类

字面常量

整型常量:1、2、12、-4;
实型常量:4.3、-1.23;
字符常量: ‘a’、‘b’;

const 修饰的常变量

初始化后不能在进行赋值。从初始化赋值后该变量就确定了,但是他实质上是变量,不能进行改变的变量。

     const float pai = 3.14f;  //这里的pai是const修饰的常变量pai = 5.14;//是不能直接修改的,这里就会报错

符号常量

在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:

#define 标识符 常量

其中#define 也是一条预处理命令(预处理命令都以"#"开头),称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义以后在程序中所有出现该标识符的地方均以该常量值所取代。 

枚举常量

枚举常量的默认是从0开始,依次向下递增1。枚举元素作为常量他们是有值的,他们按顺序值为0,1,2……,但也可以在编译时指定,例如下方代码:

enum Sex
{MALE,FEMALE,SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
enum weekday
{sun=7,mon=1,tue,wed,thu,fri,sat
}workday;
//定义sun=7,mon=1,以后顺次加一,sat=6。
workday=(enum weekday)2;//一个整数不能直接赋给一个枚举变量,要先进行强制类型转化
workday=sun;//这样赋值也可以,sun是一个枚举常量
#include<stdio.h> 
enum Sex
{//枚举类型enum Sex的可能取值//他们都是枚举常量MALE,//男FEMALE,//女SECRET//保密
};int main()
{enum Sex sex = SECRET;printf("%d\n", MALE);printf("%d\n", FEMALE);printf("%d\n", SECRET);printf("%d\n", sex);return 0;
}

 运行结果如下所示:

 2.变量

(1).变量命名

只能由字母(包括大写和小写)、数字和下划线( _ )组成。
不能以数字开头。
长度不能超过63个字符。
变量名中区分大小写的。
变量名不能使用关键字。

(2).定义变量

int age = 150;
float weight = 45.5f;
char ch = 'w';

(3).变量分类

  • 局部变量
  • 全局变量

当局部变量和全局变量同名的时候,局部变量优先使用。

#include <stdio.h>
int global = 2019;//全局变量
int main()
{int local = 2018;//局部变量int global = 2020;//局部变量printf("global = %d\n", global);printf("local = %d\n", local);return 0;
}

 运行结果如下:

 

(4). 变量的作用域和生命周期

作用域

作用域是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效而限定这个名字的可用性的代码范围就是这个名字的作用域。

  • 局部变量的作用域是变量所在的局部范围。
  • 全局变量的作用域是整个工程。

生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

  • 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  • 全局变量的生命周期是:整个程序的生命周期。

3.转义字符

\?      在书写连续多个问号时使用,防止他们被解析成三字母词

\'       用于表示字符常量'

\“     用于表示一个字符串内部的双引号

\\      用于表示一个反斜杠,防止它被解释为一个转义序列符。

\a     警告字符,蜂鸣

\b     退格符

\f      进纸符

\n      换行

\r      回车

\t      水平制表符

\v     垂直制表符

\ddd   ddd表示1~3个八进制的数字。 如: \130 X

\xdd   dd表示2个十六进制数字。 如: \x30 0

4.指针变量

(1).指针变量大小

指针大小在32位平台是4个字节,64位平台是8个字节

(2).指针是什么(地址就是指针,指针就是地址)

        要了解指针,先得知道内存是什么,每个计算机无论是32位还是64位,都会有内存来用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。而每个计算机都会对内存先进行划分单位,称为内存单元,并对每个内存单元进行编号,每个内存单元的大小是一个字节(1byte),(1byte=8bit,1KB=1024byte)。

了解了内存是什么后,现在了解下内存编号的原理,在计算机中会有32根(32位计算机)或者64跟(64位计算机)地址线(通电电线),以32位举例如下:

 这样在32跟电线的通电和不通电变化过程中就能产生2^32个二进制数据,就可以编号2^32个字节的空间,也就是内存单元,这样编号好之后,每个字节的空间就有了对应的地址。这时定义一个指针变量,存储某一空间的地址,就可以通过指针来访问该地址的内容了。

这篇关于【C语言必经之路——第2节】常量、变量、转义字符、指针的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/243225

相关文章

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

Go语言使用sync.Mutex实现资源加锁

《Go语言使用sync.Mutex实现资源加锁》数据共享是一把双刃剑,Go语言为我们提供了sync.Mutex,一种最基础也是最常用的加锁方式,用于保证在任意时刻只有一个goroutine能访问共享... 目录一、什么是 Mutex二、为什么需要加锁三、实战案例:并发安全的计数器1. 未加锁示例(存在竞态)

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五