1.作用域(scope)

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

变量有两种,局部变量和全局变量

局部变量的作用域就是变量所在的局部范围,只要不在局部范围内,变量就无法正常使用,

就行这个时候,我们要打印一个a,但是打印函数并不在函数体内,变量a就是局部变量,它起作用的范围就是整个函数体,于是printf函数无法起作用。

全局变量的作用范围是整个工程

如图,上方就是全局变量,在下方的函数体在它可起作用的范围之内。

既然是一个工程,那么我们再创建一个文件,在另一个文件中放置一个全局变量T,

全局变量T,并没有在另一个文件中起作用,错误提示是未定义标识符,这是为什么?

这里如果想要它正常运行,我们需要对T进行声明。

使用函数extern int声明,这样就可以了

2.生命周期

生命周期就是从创建变量到销毁这之间的时间

局部变量的生命周期是从它所在那一行开始到这个函数体结束,在外面对变量所进行的操作并不会奏效。

接下来是全局变量,这个比较简单,既然他的范围是整个工程,那么他的生命周期就是整个工程结束。

3.常量

常量的分类

字面常量

就是数字123,字符'a',以及字符串"abcde",这些都是字面常量

const修饰的常量

这里a是一个变量,此时输出的数是20,当我们用const去修饰这个变量,他就会被锁定,变成一个常变量,

此时便无法运行,这就是const修饰的常变量。

那么为什么叫常变量?

常是因为他有了常属性,即不会改变,变是因为他本质上依旧是一个变量,下面是证明

我们建立一个数组,其中的中括号中只能填写常数,即使b已经被const修饰锁死,但他的本质属性还是变量,所以称为常变量。

#define定义的标识符常量

利用#define直接定义一个常量

枚举常量

枚举常量就是可以一一列举的低昂,比如月份,星期这些,

我们要引入一个关键词,枚举关键词enum,使用这个来对一些常量进行列举

如图,我们列举了一到五,最终打印输出时显示的是数字0到4,

这是因为枚举常量的值是从零开始的,我们也可以对其进行赋值,但不能说他的初始值就是所赋值,这时的值应被称为赋初值。

4.字符串

用双引号括住的就是字符串,全程字符串字面值

要注意,字符串的结束标志是一个\0的转义字符,

我们引入一个数组的概念,数组就是一组相同类型的元素,

如图,我们对他进行调试,打开监视,监视arr,我们可以看到,

字符串长度仅有四,但他却有五个项,最后一个便是\0,表示该字符串结束。

在我们直接打出的字符串中,\0是被隐藏起来的,

这是一种证明,或者我们可以打印字符串

我们可以看到,字符串的打印十分正常,然而下面字符的打印后面却出了一堆乱码,就是因为字符串比字符多了\0这个结束符号,如果我们在字符中手动添加\0,

此时则正常打印。

还可以使用strlen()函数,先要引用头文件<string.h>

我们可以看到,字符串正常,字符则是随便的一个 数字,其原因相同。

5.转义字符

顾名思义,转变原来的意思

如图,程序并没有按照我们想的打印,而是出了几个空,因为\t就是转义字符

以下是一些转义字符

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

\'用于表示字符常量

出现此情况时就要用它

这样就可以打印出‘

举一反三的,\”用法与之类似

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

之前的一个情况就可以使用它

这样就打印出我们想要的了。

\a警告符号,蜂鸣

\b退格符

\f进纸符

\n换行

\r回车

\t水平制表符

\v垂直制表符

\ddd  ddd表示1到3个八进制数字

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

后面两个最后输出的结果可能是符号,他运用了ASCII码值转换数字,

键盘上有许多种符号,就用数字把这些符号表示起来

下面是ASCII码表

6.注释

注释有两种方法

在前面加//,这是C++的注释风格,同时也是目前主要的注释方法

/*代码*/是C语言的注释风格,但他有缺陷,不支持嵌套注释,如下

最下面的大括号没有被注释,当他遇到第一个*/时,注释就终止了。

我们可以在代码错误时直接将它注释掉,但注释的最主要用途还是为我们做注释。

当我们写了一个比较复杂的代码时,我们需要注释来让别人更好的阅读,同时也可以让我们以后看时更容易回想起来自己的思路。

=========================================================================今天就到这里,有点晚了,挺困的,明天见!

【C语言】一些概念的基本解释相关推荐

  1. python中动态语言静态语言的定义_作为程序开发,你所需要知道的编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的概念以及区别...

    作为程序开发,你所需要知道的编译型与解释型.动态语言与静态语言.强类型语言与弱类型语言的概念以及区别! 在各式各样的开发过程当中,我相信各位开发小伙伴在开发过程中并没有太关注什么是解释性语言和编译性语 ...

  2. c语言字符变量grade如何定义,c语言基础概念笔记

    最近看到自己之前刚开始学习的时候记的一些笔记就稍微整理了一下 第一章 c语言注释 概念:给代码进行解释说明 作用:加强程序代码的可读性和维护性 /*:多行注释 //:单行注释 变量和基本数据类型 变量 ...

  3. 区块链基本概念和名词解释

    区块链入门系列文章 区块链基本概念和名词解释 P2P 共识算法 梅克尔-帕特里夏树 从零开始搭建区块链 这里写自定义目录标题 区块链入门系列文章 前言 一切要从Web3说起 Web1时代特点 Web2 ...

  4. 程序设计语言基本概念

    一.基本概念 在计算机中,程序设计语言可划分为低级语言和高级语言两大类,与高级语言相比,用低级语言开发的程序,其运行效率高,但开发效率低.与程序设计相关的基本概念如下. (1)低级语言:又称面向机器语 ...

  5. java 注解 demo_JAVA语言注解概念使用及Demo讲解

    本文主要向大家介绍了JAVA语言注解概念使用及Demo讲解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. java注解 概念 Java提供了一种原程序中的元素关联任何消息和任何元数据 ...

  6. 计算机网络解释概念,2017年计算机三级网络技术基本概念与名词解释:计算机网络的基本概念...

    计算机网络的基本概念 112. 计算机网络:计算机网络是利用通信设备和线路将分布在不同地点.功能独立的多个计算机互连起来,通过功能完善的网络软件,实现网络中资源共享和信息传递的系统.计算机网络由资源子 ...

  7. c语言从入门到精通_C语言基本概念(上)【C语言入门到精通】

    C语言基本概念 Syntactic sugar causes cancer of the semi-colons.[0] 码字不易,对你有帮助 点赞/转发/关注 支持一下作者 微信搜公众号:不会编程的 ...

  8. 计算机技术基础概念,2017年计算机三级网络技术基本概念与名词解释:计算机基础知识部分...

    计算机基础知识部分 1. 计算机系统发展历程:电子管计算机.晶体管计算机.集成电路计算机.大规模及超大规模集成电路计算机. 2. 电子计算机时代开始的标志:以美国1945年生产.1946年2月交付使用 ...

  9. 计算机等级考试(三级网络)基本概念与名词解释

    计算机等级考试(三级网络)基本概念与名词解释 作者:yt125 发表时间: 2005/07/26 22:04 点击:1329次 发帖得万元!   活动官方论坛 修改  精华  删除  置顶  来源   ...

  10. JAVA数组概念与C语言数组概念区别

    C语言数组概念: 数组是一个集合数据类型,它由多个元素组成,每个元素都有相同的数据类型,占有相同大小的存储单元,且在内存中连续存放.每个数组都有一个名字,数组中的每个元素都有一个序号(都成为下标),表 ...

最新文章

  1. iOS 查看崩溃日志
  2. Vue 组件中 移动 this.$el 的注意事项
  3. 【知识图谱系列】人工智能经典图谱有哪些?
  4. for循环中pairs与ipairs的区别与联系
  5. HFSS中的求解类型(Solution Type)
  6. 浏览器兼容问题及解决方案
  7. java sleep和wait区别
  8. mysql堆溢出_为什么这个MySQL触发器会导致堆栈溢出?
  9. 抽象类可以用new创建对象吗_宠物可以用人类的湿巾吗?猫咪有泪痕可以用纸巾擦掉吗?...
  10. iOS oc 线程 进程,同步异步,并发串行,来捋捋
  11. 远程登录telnet 连接失败的解决方法
  12. ABAP 读取FTP文件
  13. UE4之Import源码解析
  14. erps 单环基本原理
  15. 12面魔方公式图解法_高手指教一下十二面魔方怎么拼?!十二面魔方公式新手图解...
  16. TD-SCDMA牵动3G牌照发放 重塑中国电信生态
  17. 万用表测试软件,仅用万用表作为检测工具的集成电路
  18. Windows系统封装(四)正式封装和测试。
  19. 全球及中国ISO刀柄行业产销需求及消费策略调研报告2022版
  20. 项目整合微信扫码登录功能

热门文章

  1. 【人工智能】大模型复杂系统的涌现与演化进化规律
  2. 中国民航大学本科毕业论文答辩和论文选题PPT模板
  3. teleport最新版不支持mysql_Teleport服务端配置详解
  4. ThreadPool学习笔记
  5. windows下 V8 JS引擎 编译 2016-06-30
  6. Linux静态DNS配置
  7. 运输公司对用户计算运费,路程越远,折扣越多,标准如下图
  8. SpringBoot使用通配符加载配置文件
  9. [转载]HAO123的迷思——谈谈SEO
  10. 2556. 【NOIP2011模拟9.7】伊吹萃香 (Standard IO)