函数的作用:可以实现代码的重用. 函数只需要定义1次,那么函数中的代码就可以随意的调用.       -某不知出处的基本概念

  学而时习之,如有误笔,请指正

一、goto跳转语句

  goto在C语言的作用: 可以将CPU的执行跳转到当前函数的别的地方继续执行.因为会产生代码回朔,所以极易产生死循环。

  注意:

1). 标签名随意,但是要符合标识符的命名规则及规范.

标识符: 那就是程序员可以自己给名字的东西 统称为标识符.

变量名、标签名、函数名.

2). goto可以往前跳 也可以往后跳.

3). 只能在当前函数中跳.

4). 取标签名下面的那一句代码不能是声明变量.

如果你非要做的话 就写1句没有效果的代码.

  实例如下:

loop:
printf("");
int userName = , password = ;
printf("用户名: ");
scanf("%d",&userName);
printf("密 码: ");
scanf("%d",&password); //如果是错误的.
if(userName != || password != )
{
goto loop;
}

  二、全局变量和局部变量

1. 变量: 在内存中用来存储数据开辟的那块空间.

局部变量:定义在函数内部的变量,我们就叫做局部变量.

  全局变量:定在函数外部的变量.我们就叫做全局变量.直接定义在源文件下面.

2. 全局变量和局部变量的异同点.

相同点: 都是变量,都是在内存中开辟一块空间来存储数据.

不同点:

1). 声明的位置不同. 局部变量声明在函数内部,而全局变量声明在函数的外面.

2). 作用域不同.

a. 局部变量.只能在当前函数的内部访问.

b. 全局变量.从定义这个全局变量的地方开始,后面的所有的函数中都可以访问这个全局变量.

一般情况下.全局变量都是定义在最顶上的.#include下面.

3). 默认值不同.

a. 局部变量.

声明1个局部变量,如果没有为这个局部变量赋初始值.那么这个局部变量中有值, 值是1个垃圾数.是个随机数.

b. 全局变量.

声明1个全局变量,如果没有为这个全局变量赋初始值,那么这个全局变量的初始值默认就是0 会自动初始化为0

如果全局变量的类型是char类型,并且我们也没有初始化.那么系统就会自动的这个char变量赋值1个 '\0'

'\0' 代表1个不可见的字符. 这个字符的ASCII码就是0

4). 创建和回收的时间不同.

a. 局部变量.

CPU执行声明局部变量的那句话的时候,才会在内存中声明.

当作用域结束以后 就会自动回收.

b. 全局变量.

程序一启动 就在内存中创建全局变量.

程序结束的时候,全局变量才会被回收.

3. 全局变量的特点.

1). 程序一启动就会创建,直到程序结束的时候才会被回收.

局部变量.每次调用函数都会重新声明1个.函数结束的时候局部变量就回收.

无论在那个函数中 访问全局变量.访问的都是同1个.

具备共享性. 将数据声明为全局变量.那么所有的函数都能访问,都可以共享这个数据.

2). 什么时候我们需要把1个数据定义为全局变量呢?

如果这个数据想要被多个的函数访问.那么就可以将这个数据定义为全局变量.

4. 函数如果不被调用,函数内部的代码是不会执行的.

5. 可以定义1个和全局变量名称相同的局部变量.

这个时候,在函数内部从定义同名局部变量开始后面访问这个 变量. 访问的是局部变量.

  不建议这么写~

  三、预编译

1. 预处理指令/预处理代码.

C语言的代码主要分为两类.

1). C代码.

2). 预处理代码.

以#开头的代码就叫做预处理代码.

2. 手写第1个C程序的步骤.

1). 在.c的源文件中写上符合C语言规范的源代码.

2). 编译. 使用cc -c 指令将C语言的源代码编译为.o的目标文件.

a. 先检查源文件中的代码是否符合语法规范

YES: 生成目标文件.

NO:  报错.

3). 链接: 使用cc 指令 将目标文件链接生成1个可执行文件.

a. 为目标文件添加启动代码.

4). 执行可执行文件.

----->  这都是编译器在编译的时候做的事情 <-------------

.c源文件 --> 执行.c文件中的预处理代码 --> 检查语法 --> 编译成.o目标文件 --> 链接生成可执行文件 --> 执行.

3. 预处理指令

1). 预处理指令的分类.

a.  文件包含指令. #include

b.  宏定义       #define

c.  条件编译指令  #if

2). 预处理指令的特点.

a. 都是以#号开头.

b. 预处理指令的后面没有分号.

c. 在编译的时候,检查语法之前.

C语言的傻瓜式随笔(二):全局变量、预编译、goto的更多相关文章

  1. C语言的傻瓜式随笔(一):嵌套循环-程序结构

    循环语句的嵌套 一个循环结构内可以含有另一个循环,称为循环嵌套,又称多重循环.常用的循环嵌套是二重循环,外层循环称为外循环,内层循环称为内循环. ---------不知道哪来的基础概念 这是本宝宝的第 ...

  2. JavaScript作用域原理(二)——预编译

    JavaScript是一种脚本语言, 它的执行过程, 是一种翻译执行的过程.并且JavaScript是有预编译过程的,在执行每一段脚本代码之前, 都会首先处理var关键字和function定义式(函数 ...

  3. .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二)

    原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 先上项目解决方案图: 以上可以看出项目结构可以划分为4大块,1是surging的核心底层,2,3,4都可以 ...

  4. [翻译] C# 8.0 新特性 Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南) 【由浅至深】redis 实现发布订阅的几种方式 .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐

    [翻译] C# 8.0 新特性 2018-11-13 17:04 by Rwing, 1179 阅读, 24 评论, 收藏, 编辑 原文: Building C# 8.0[译注:原文主标题如此,但内容 ...

  5. ES6新特性之傻瓜式说明

    ES6出来挺长一段时间了,但目前网上好像教程并不多也不详细.我依然遵循傻瓜式教学模式,白话文说明JavaScript和ES6的一些区别,说明下ES6的一些新特性.本文适合新手学习,大神请勿见笑,在下在 ...

  6. 在线App开发平台——应用之星傻瓜式开发平台

    随着智能手机及APP应用程序的普及,越来越多的企业和个人意识到APP的营销价值,出于对技术的敬畏,很多企业下意识认为开发APP是一个有难度的技术活,所以很多时候有心无力,也担心APP的后续的技术支持. ...

  7. 如何使用win7自带的备份还原以及创建系统镜像------傻瓜式教程

    对于经常鼓捣电脑的童鞋来说,装系统是一件极其平常的事情,不过系统装多了之后,我们会感到比较烦躁,因为每一次装系统意味着驱动的重新安装,程序的重新安装,每次这么鼓捣几次,半天时间就花在这上面了,效率是在 ...

  8. 【简单易用的傻瓜式图标设计工具】Logoist 3.1 for Mac

    [简介] Logoist 是一款Mac上强大易用的傻瓜式图标设计制作工具,通过使用内置模板和预设效果,您可以立即创建高质量的图形内容和艺术作品.通过使用该应用程序,可用于制作图标LOGO. 一款用于创 ...

  9. Android简易项目--傻瓜式阿拉伯语输入法(Dummy Arabic Input)

    一.应用名称 Android简易项目--傻瓜式阿拉伯语输入法(Dummy Arabic Input) 二.应用图标 三.应用说明 现在通行的阿拉伯语键盘布局并无规律可循,阿拉伯语使用者需要花费较多时间 ...

随机推荐

  1. ubuntu下命令杂项

    一. 1.用sudo apt-get install python3-numpy之后,会默认把numpy安装到  /usr/lib/python3/dist-packages目录下,而且版本比较低. ...

  2. 一个特殊情形的Mittag-Leffler分解

    Mittag-Leffler分解定理的证明有多种,比如可以利用一维$\overline{\partial}$的解来构造相应的函数,还可以利用极点主部的Taylor多项式来进行修正使得$\sum(g_{ ...

  3. 安天AVL联合小米MIUI首擒顽固病毒“不死鸟”

    不死鸟作为希腊神话中的一种怪物,拥有不断再生的能力,每当寿限将至时,它会在巢穴中自焚,并在三天后重新复活.就在近期,安天AVL移动安全团队和小米MIUI安全中心发现了病毒界的“不死鸟”,其顽固程度之深 ...

  4. mysql 慢查询的小结

    MySQL优化的第一步应该做的就是排查问题,找出瓶颈,而通常情况下的瓶颈和问题都需要通过观察MySQL的运行情况来进行分析,而对于大多数的程序员来说,最容易发现并解决的问题就是MySQL的慢查询或者没 ...

  5. PhpStorm 快捷键大全 PhpStorm 常用快捷键和配置

    PhPStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能.Phpstrom的一款名 ...

  6. C++ 系列:静态库与动态库

    转载自http://www.cnblogs.com/skynet/p/3372855.html 这次分享的宗旨是——让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择 ...

  7. struts 2 时间控件

    在使用struts2框架时,为我们提供了时间选择器控件:datetimepicker.但是在使用过程中会出现一些问题,主要就是struts2版本更新时做了一些修改.在struts2.0时,使用< ...

  8. "Fatal error: Call to undefined function: file_put_contents()"

    打开页面时提示这个错误: Fatal error: Call to undefined function: file_put_contents() 意思是请求未定义的函数,出现这个提示通常有两种情况: ...

  9. 2.View绘制分析笔记之onMeasure

    今天主要学习记录一下Android View绘制三部曲的第一步,onMeasure,测量. 起源 在Activity中,所有的View都是DecorView的子View,然后DecorView又是被V ...

  10. JMeter执行dos命令

    1.通过java代码实现 参考Java实现操作dos命令 2.直接通过JMeter内置的beanshell脚本操作 String command = "cmd /c start ping w ...