C语言初识变量常量字符串转义符及注释方式简介

 更新时间:2021年11月19日 10:06:50   作者:RookieStriver  
最强的C语言笔记,此处对于C语言的基础部分做一个简要的介绍,作者实属初学,写博客也是作者学习的一个过程,若文中内容有理解不到位或者有不当之处,还请朋友们不吝指正

一:变量与常量

1.1:变量

生活中有些值是可变的(比如年龄,体重,薪资)。
下面我们举一个简单的例子表示变量的创建与使用。

在这里插入图片描述

1.1.1:变量的分类

局部变量

全局变量

这里主要介绍一下全局变量与局部变量作用域与生命周期。
作用域:通俗来讲,也就是一个变量在哪里可以使用,哪里就是他的作用域。
生命周期:也就是从创建到销毁的一个过程。
局部变量的作用域:是变量所在的局部范围。
全局变量的作用域:是整个项目工程。

局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。
全局变量的生命周期:整个程序的生命周期,也就是main函数的生命周期。
下面我们用个表格来总结一下

在这里插入图片描述

注:此处的储存位置可暂时不看,后续会详细介绍。

1.1.2:变量的优先性

遵循“就近原则”,意思是如果全局变量和局部变量同名时,在函数内还是会局部变量起作用。如下:

在这里插入图片描述

1.2:常量

C语言中,常量与变量的定义有所差别,常见的有字面常量,#define定义,枚举常量,const修饰的常量。

1.2.1:#define定义

通常我们写程序时当一个常数多次在程序中使用时,如果我们每次都把数字写入程序,当我们需要改变这个数据时,那么就需要去修改每一处,非常的麻烦,那么这时候我们就可以定义一个define常量。
例如:#define MAX 100

在这里插入图片描述

1.2.2:枚举常量

这里枚举常量只做简要介绍,后面作者会详细介绍。

在这里插入图片描述

这里提醒一下

  • 当我们定义枚举类型变量时,只能用枚举的可能取值给变量赋值。
  • 枚举常量内部有默认值,如果无特殊赋值,则从0开始,依次+1。

1.2.3:const修饰的常量

我们定义变量时,可以在类型前加const,此时定义的变量具有常属性,伪常量,不可定义数组。
const定义的常量的修改:

  • 全局变量:不可修改
  • 局部变量:不可以直接修改 。

注:关于此处内容后续详细介绍,尽情期待。

二:字符串介绍

“hello world!\n”这种由双引号引起来的一串字符称为字符串字面值,简称字符串。
下面我们看一个代码:

在这里插入图片描述

思考为何ch2打印出来会是乱码?
这里我们介绍字符串的标志结束符'\0', 表示字符串结束。
ch2表示一个字符数组,没有定义数组大小时,后面的'\0'不知在何处,所以打印出来时后面会是乱码。我们可以调试查看一下ch1和ch2de1区别。

在这里插入图片描述

可见,ch1中有'a', ‘b', ‘c', ‘\0', 而ch2只有'a', ‘b', ‘c',无结束标识符。
当我们限定一下CH2大小时,这时打印就正确了:

在这里插入图片描述

这时与数组的不完全初始化有关,当限定大小时,后面不完全初始化为数字0,也就相当于'\0'的作用。
下面我们看两个相等变换:

char arr[] = {‘h', ‘e', ‘l', ‘l', ‘o', ‘\0'}; == char arr[] = “hello”;
char arr[] = {‘h', ‘e', ‘l', ‘l', ‘o', ‘\0'} = char arr[6] = {‘h', ‘e', ‘l', ‘l', ‘o'}

如果一个字符数组有'\0', 那么就可以理解为一个字符串,也就是说字符串是字符数组的特例,字符串末尾隐藏一个'\0', 是字符串的结束标志。

三:转义字符的介绍

当我们要在屏幕上打印一个目录:C:\code\test.c时,我们需要怎样写代码?
先看一个错误代码:

在这里插入图片描述

我们可以看出第一种打印是错误的,原因是\t被转译成一个水平制表符,所以我们要打印时需要把目录中的''进行转义。
我们再介绍两个特殊的转义字符:

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

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

下面我们用代码来验证:

在这里插入图片描述

原理:\130此时表示把130转换成十进制,这个十进制数代表的ASC码对应的字符。

三:注释方式的介绍

代码中有不需要的代码可以直接删除,也可以注释掉

代码中有些难懂的代码,可以加一些注释文字

注释有两种风格:

C语言的注释风格 /※xxxxxxxxxxxxxxxxxx※/
缺陷:不可以嵌套注释,C99之前的C语言的注释风格。

C++的注释风格 //xxxxxxxxxxxxxxxxx
优点:可以注释多行也可以注释一行,C99之后引入的注释风格。

OK!!!观众老爷们,这里只是C语言的入门知识,如果朋友们觉得有一点点作用的话,希望朋友们能够给予小菜鸟一点支持!后续继续给朋友们带来更好的博文,还希望朋友们能够继续关注,小菜鸟致力于把自己的学习经验与个人理解更多的分享给大家,望大家喜欢与指正,希望大家以后多多支持脚本之家!

相关文章

  • 基于C语言的开源csv解析库MiniCSV的使用示例

    基于C语言的开源csv解析库MiniCSV的使用示例

    这篇文章主要为大家详细介绍了基于C语言中的开源csv解析库——MiniCSV的使用示例,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-07-07
  • 详解C/C++ QT QChart 绘制组件应用

    详解C/C++ QT QChart 绘制组件应用

    Qtcharts 组件基于GraphicsView模式实现,其核心是QChartView和QChart的二次封装版。本文重点给大家介绍C/C++ QT QChart 绘制组件应用的相关知识,感兴趣的朋友一起看看吧
    2021-11-11
  • 详解C++的反调试技术与绕过手法

    详解C++的反调试技术与绕过手法

    反调试技术,恶意代码会用它识别自身是否被调试,或者让调试器失效,给反病毒工程师们制造麻烦,拉长提取特征码的时间线,本章将具体总结常见的反调试基础的实现原理以及如何过掉这些反调试手段,从而让我们能够继续分析恶意代码
    2021-06-06
  • 使用C语言实现字符串左旋和右旋问题

    使用C语言实现字符串左旋和右旋问题

    这篇文章主要介绍了使用C语言实现字符串左旋和右旋问题,需要的朋友可以参考下
    2018-07-07
  • C语言实现的循环单链表功能示例

    C语言实现的循环单链表功能示例

    这篇文章主要介绍了C语言实现的循环单链表功能,结合实例形式分析了基于C语言实现的循环单链表定义、创建、添加、删除、打印、排序等相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • C++ move semantic移动语义介绍

    C++ move semantic移动语义介绍

    首先,移动语义和完美转发这两个概念是在C++的模板编程的基础上,新增的特性,主要是配合模板来使用。本篇会从C++的值类型,到移动拷贝与移动赋值来理解移动语义与完美转发
    2022-08-08
  • 深入理解C语言的new[]和delete[]

    深入理解C语言的new[]和delete[]

    new和delete既是C++中的关键字也是一种特殊的运算符。这篇文章主要介绍了C++的new和delete详解,需要的朋友可以参考下
    2021-09-09
  • C++实现查询本机信息的示例代码

    C++实现查询本机信息的示例代码

    这篇文章主要为大家详细介绍了如何利用C++实现查询本机信息,并且进行上报,文中的示例代码讲解详细,具有一定的参考价值,感兴趣的可以了解一下
    2023-05-05
  • Qt使用SQLite数据库存储管理图片文件

    Qt使用SQLite数据库存储管理图片文件

    这篇文章主要为大家详细介绍了Qt如何使用SQLite数据库实现存储管理图片文件的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-04-04
  • C语言连接并操作Sedna XML数据库的方法

    C语言连接并操作Sedna XML数据库的方法

    这篇文章主要介绍了C语言连接并操作Sedna XML数据库的方法,实例分析了C语言操作XML文件的相关技巧,需要的朋友可以参考下
    2015-06-06

最新评论