函数的作用:可以实现代码的重用. 函数只需要定义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语言的傻瓜式随笔(一):嵌套循环-程序结构

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

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

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

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

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

ES6新特性之傻瓜式说明

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

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

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

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

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

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

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

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

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

随机推荐

OpenCV中IplImage图像格式与BYTE图像数据的转换

最近在将Karlsruhe Institute of Technology的Andreas Geiger发表在ACCV2010上的Efficent Large-Scale Stereo Matchin ...

深入理解PHP内核(十)变量及数据类型-类型提示的实现

原文链接:http://www.orlion.ga/253/ PHP是弱类型语言,向方法传递参数时也并不严格检查数据类型.不过有时候需要判断传递到方法中的参数,为此PHP中提供了一些函数来判断数据的类 ...

iOS 使用证书时遇到的错误一

证书概念: 那么现在就牵扯到几个名词,Development证书,aps_Development证书(推送证书),测试描述文件,AppID,同理也就有Distribution证书,aps_Distri ...

IOS 日志输出控制

用以下内容可以控制在debug版本中打印日志,而在release版本中不打印 #ifdef DEBUG# define DBLog(format,...) NSLog((@"[%s][%s] ...

Android手机播放电脑视频文件-屌丝必备

今天早上一到办公室,照常打开博客园看文章,看到有一片文章是用  http://wwwblogs/wdfrog/p/3738180.html 看到这哥们实现的方法好复杂,又是配置电脑端,又 ...

源代码编译lamp环境

没有办法用 rpm查询一个源代码包是否安装 因为 并不是用rpm安装的 可以先吧 selinux 给禁用掉  iptables -F 把防火墙规则全部删除 首先确保 gcc  gcc-c++   ma ...

像51一样操作STM32的IO(转)

源:像51一样操作STM32的IO //-------------------------------------------------------------------------------- ...

Docker化tomcat 并且使用maven热部署

今天没事干 就把自己的tomcat  docker化并且使用maven实现热部署 特别记录一下~ 1.首先进行centos7的安装 就不在记录了 注意的是最好使用centos7 因为docker 依赖 ...

Luogu4137:Rmq Problem/mex

题面 传送门 Sol 这题可能是假的 离线莫队搞一搞,把数字再分块搞一搞,就行了 # include # define IL inline # define ...

unix重定向标记

stdin ,0,< << stdout,1,> >> stderr,2,2> 2>> 将stdout和stderr输出到同一个文件: > ...

更多推荐

C语言预编译中进行循环,C语言的傻瓜式随笔(二):全局变量、预编译、goto