嵌入式学习笔记总结Day12

	昨天主要学习了局部变量和全局变量,以及c语言中变量的存储类别。同时学习了指针的概念以及一些基础的应用。

一、局部变量和全局变量

1.局部变量

在某一个函数内部定义的变量,其一定在某个{  }范围内,其只在该{  }范围内有效,
也就是说,当不同花括号内有同名变量时,由于他们只作用在自己所在的{  }内,所以他们本质是不同的变量。
注意:局部变量所在的空间是开辟在栈上的,所以从定义的语句开始,到所在的作用域范围结束。

2.全局变量

全局变量一般不在任何一个{  }内,在任何一个函数中都可以使用这些变量。这些变量从程序一开始运行就存在,直到程序结束才销毁。

二、标识符的可见性

可见性的含义是:程序运行到某个点,哪些标识符可见。它的规则为:
1.先定义,后使用 
2.同一作用域中,不能有同名标识符
3.在不同的作用域,同名标识符,相互之间没有影响 
4.如果是不同的作用域但是作用域之间存在嵌套关系, 则,内层的作用域的同名标识符,会屏蔽外层的作用域的同名标识符。

三、变量的存储类别

1、auto变量

当函数中的局部变量,不专门去声明为static存储类别,都是动态的去分配存储空间的,这些变量在所在函数被调用时被分配空间,在函数调用结束时自动释放这些存储空间。

2.用static声明局部变量

当使用static声明局部变量时,这个局部变量就变成了静态局部变量,它的声明周期就会延长,从程序一开始运行,就存在,直到程序结束时才销毁。静态变量有以下特性:
1.不能用变量进行初始化,只能常量初始化
2.静态区的变量 只会被初始化一次
3.值具有继承性

3.用static声明全局变量

当用static声明全局变量时,这个全局变量就不能再使用extern进行扩展,他就只能用在本程序文件中,另外要注意函数名也为全局变量。	

4.register变量

		一般情况下,变量的值都是存放在内存当中,但是如果一个变量使用频繁,例如要在程序中循环10000次,这时就会影响程序运行的时间,
	这时我们可以用register进行声明,将其放到寄存器中,寄存器的存取速度是远高于内存的,这就大大的提高了程序的运行速率。

5.extern声明外部变量

extern一般用在多文件编程中,如果想在当前文件使用别的文件中的全局变量,此时可以用extern进行声明,
相当于把别的文件中的变量作用域扩展到当前文件中。

三、指针

指针同样是c语言中的一种变量类型,其主要是用来存放变量的地址。
其基本语法为:基类型* 指针变量名; 
   基类型---表示指针变量指向的目标的数据类型
   如int *p:表示定义了一个指针变量,其指向一个int型的变量。

注意:指针运算的过程:*p 过程:
1.首先拿出p指针变量中的值(地址) 到内存中定位
2.从定位处开始,偏移出sizeof(基类型)大小的一块空间
3.把这块空间当做一个 基类型的 变量来看

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值