初识C语言 (1)

简介: 初识C语言 (1)

关于初始C语言这个章节,我会分3次来给大家系统的介绍,让友友们对C语言有一个基本的理解,以便对后面的C语言深度理解打下一个基础。学习C语言的友友们,一定都要坚持下去。

一变量

1.1变量的分类

首先呢,介绍一下变量,变量包括局部变量和全局变量。

1.2变量的使用

1.2.1变量

变量就是一个变化的量,scanf是从键盘中取得数字

在这里提出一个问题,是否可以在sun=a+b;前面直接加一个int呢?

答案:是可以的,但是在稍微老一点的编译器是无法使用的(VS2019是可以的,但是在VS2010就无法使用)

1.2.2 调试时出现scanf报错问题的处理

这是自己用VS2019时出现的问题,如果友友们出现同样的问题,希望对你们有帮助

出现的问题

解决的办法

在代码的第一行写上#define _CRT_SECURE_NO_WARNINGS 1

此时就有部分友友们思考,为什么不直接使用scanf-s呢?因为报错中讲到的scanf-s函数是VS编译器提供的,并不是C语言提供的,在其他的编译其中是无法使用的哦。

友友们写代码时要尽量用标准的C语言写。

1.3变量的作用域和生命周期

变量的作用域

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

通俗来讲就是,全局变量对整个编程都起作用,在任何位置都可以输出全局变量;局部变量仅仅在自己所在的{}中起作用。

生命周期

局部变量的生命周期是进入作用域生命周期开始,出作用域生命周期结束。

全局变量的生命周期是整个程序的生命周期。

1.4常量

常量包括字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量。

1.4.1字面常量

1.4.2 const 修饰的常变量

加const 之前还能修改a的值,加const 后就不能修改了,a就是一个定值。

在这里a虽然不能变,具有常量的属性,但是a的实质还是一个变量。

证明a的实质是一个变量:在数组中括号里面的数字,必须是常量

const int a=100;      

int arr[100]={0};  (调试的时候并没有报错)

int arr[a]={0};   (调试的时候出现错误)

1.4.3 #define定义的标识符常量

#define 定义的标识符常量,可以当做常量来使用。(define定义的,一般都是大写字母)(小写也可以,但是不建议)

1.4.4 枚举常量

介绍枚举常量之前呢,先简单的介绍一下枚举,枚举就是一一列举的意思,所以枚举的这个常量要能一一列举出来。例如:性别可以分为男和女。

枚举常量不太好理解,大家在这里简单的理解一下就可以,在后续中我会给友友们更加详细的说明。

二、字符串+转义字符+注释

2.1、字符串

有双引号引起来的一串字符串称为字符串字面值,简称字符串。

注:字符串的结束标志是一个'\n'的转义字符,在计算字符串的长度的时候'\n'是结束标志,不算做字符串内容。

单引号为字符,双引号为字符串。

来一个小插曲,用VS2019如何监视。

(1)F10

(2)调试---窗口---监视

接下来,回到我们的字符串!!!

2.2、转义字符

转义字符,顾名思义就是转变意思。例如'n'就是一个字符,但是'\n'就是换行的意思。下面是一张转义字符表,希望给大家带来帮助。

为了让友友们更好地理解转义字符,给大家举一个简单的例子。

通过这两张图,大家已经具体明白转义字符的用处了吧。

首先,解释一下\\这个转义字符的用处,

本来\n是一个表示换行的转义字符,但是\\n就把\n的用途给改变了。

然后解释一下\'和\"的意思。

提出一个问题,怎样在屏幕上打出'和"呢。大家下意识的以为是printf("%c",''');和printf("%s",""")其实不是这样子的,因为系统会自动把前两个引号当做一对引号。

%c,打印字符

%s,打印字符串

最后呢,介绍一下\ddd和\xdd

ddd是1-3个八进制数字,例如:\130 (88)(x呢,是88的ASCII码值)  \70 都可以;dd是2个十六进制数字

130(八进制 ) ——88(十进制)——X(88的ASCII码值)

30(十六进制)——48(十进制)——0(48的ASCII码值)

别的转义字符不常用,在这里就不多做介绍了。

2.3、注释

C语言有两种注释方式://和/*  */

//注释的每一行都必须有     /* */不用每一行都有,但是不能嵌套使用。

作用是:代码复杂,进行解释  代码暂时不用的话,可以注释掉。

今天的分享就到此结束了,希望这些可以给友友们带来帮助,同时也希望友友们可以提出意见。

相关文章
|
存储 C语言 C++
C语言初阶--初识C语言(2)
C语言初阶--初识C语言(2)
241 0
|
SQL NoSQL 关系型数据库
推荐3款免费且实用的数据库管理工具
推荐3款免费且实用的数据库管理工具
643 2
|
数据安全/隐私保护 Python
【python实现学生选课系统】
【python实现学生选课系统】
355 0
|
JavaScript Java 测试技术
基于Java的学生课堂考勤系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的学生课堂考勤系统的设计与实现(源码+lw+部署文档+讲解等)
196 0
|
自然语言处理 算法 数据可视化
R语言中对文本数据进行主题模型topic modeling分析
R语言中对文本数据进行主题模型topic modeling分析
|
人工智能 算法 数据处理
零一万物发布首款大模型,阿里云魔搭社区开源首发
零一万物发布首款大模型,阿里云魔搭社区开源首发
483 0
|
机器学习/深度学习 人工智能 算法
【AlphaHoldem】端到端强化学习玩德州扑克
【AlphaHoldem】端到端强化学习玩德州扑克
833 0
【AlphaHoldem】端到端强化学习玩德州扑克
|
存储 前端开发 JavaScript
基于Django的学生信息管理系统的设计与实现
基于Django的学生信息管理系统的设计与实现
897 0
|
API 图形学
unity之子弹发射小demo
unity之子弹发射
307 0
|
算法 数据安全/隐私保护 Python
凯撒加密Caesar cipher
凯撒加密Caesar cipher
644 0
凯撒加密Caesar cipher