ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言初学学习笔记二

2022-01-27 21:58:29  阅读:147  来源: 互联网

标签:变量 作用域 scanf 笔记 C语言 初学 全局变量 函数


hello!这里是C语言初学小白,接下来分享我的学习笔记第二篇。

上面我们讲到数据类型。那么我们要如何运用它呢?类型的作用是用来创建变量的。

那么在C语言中怎么描述常量和变量

常量 -- 不能改变的量

变量 -- 能够改变的量

在C语言中定义变量的方法

如下图例,先写出主函数int main(){return 0;}框架,int age = 20;创建一个名为age的变量。其中int表示的是age的数据类型,=是赋值的意思,double同理。当然在创建变量的时候也可以不赋值,但是不推荐。打印函数中%d指的是打印类型为整数,%lf对应的是双精度浮点型(double)。%f对应的是float类型.....

接下来了解一下变量的分类

局部变量指的是在大括号内部定义的

全局变量指的是在大括号外部定义的

如果全局变量和局部变量名字冲突,那么这个时候运用打印函数打印的值是全局变量的值。注:当全局变量和局部变量名字冲突的情况下,局部优先。当然我们不建议将全局变量和局部变量的名字写成一样的。

这个变量我们要如何使用呢?

例;写一个代码求两个整数的和 ,这里需要运用到scanf输入函数,首先分别创建三个变量,这里的scanf("%d %d", &a, &b);前面两个%d是scanf函数的格式,后面的&a和&b指的是要把数据存放到里面去。让我们运行一下这串代码,就会发先它会报错。

 我们可以看到报错那栏写的是引用scanf函数不安全介意替换成scanf_s函数,如果不想看到这个描述,请使用_CRT_SECURE_NO_WARNINGS。那么我们该如何解决scanf函数报错的问题?

解决scanf函数运用的问题

首先点击错误列表旁的输出,复制 _CRT_SECURE_NO_WARNINGS,然后注意把复制的这段放在整个源文件的第一行定义#define  _CRT_SECURE_NO_WARNINGS 1 然后我们再一次编译代码,在控制台随机输出两个整数值 回车就可以输出我们想要的sum值。这里不建议使用scanf_s函数,因为这个函数是VS编译器提供的,不是C语言标准规定的。而且如果要使用这个函数,需要知道它是如何使用的,scanf_s函数和scanf函数的使用格式是不同的。

 

 

 

变量的作用域和生命周期

作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。通常理解成这个变量哪里起作用,哪里就是它的作用域。举个例子,如下图,创建一个为a的变量,用打印函数打印出了变量a,说明printf这行就是a的作用域。

 

所以 局部变量的作用域:就是变量所在的局部范围;那么全局变量的作用域是什么?全局变量的作用域是整个工程。让我们来看下面这个例子:我们创建了一个全局变量g_val,分别在三个位置打印该变量。可以看到,三个打印函数全部打印出来该全局变量。

那么说全局变量的作用域是整个工程,那它在同一个工程里不同的源文件中也可以作用。如下图例,我们创建了另一个源文件,在第二个源文件创建了一个全局变量,在第一个源文件中打印全局变量,可以看到是可以打印出全局变量的。注;这里需要声明一下全局变量,extern g_val

 

注:执行性代码,变量赋值必须放在大括号里面

变量的生命周期:变量的创建和销毁之间的时间段

局部变量的生命周期:进入局部范围生命开始,出局部范围生命结束

全局变量的生命周期:程序的生命周期

以上就是变量的相关知识,下面要讲的是C语言中的常量

C语言中的常量分为以下几种:

1.字面常量

2.const修饰的常变量(常变量具有常属性,但本质还是变量)

3.#define定义的标识符常量

4.枚举常量

 这里的enum关键字用于定义枚举类型,值默认从零开始

好了,以上就是笔记二的全部内容了,剩下的学习内容就留到笔记三了,感谢观看。

标签:变量,作用域,scanf,笔记,C语言,初学,全局变量,函数
来源: https://blog.csdn.net/keykilocode/article/details/122689852

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有