计算机二级C语言笔记 下载本文

变量的作用域和存储方式: 按作用域分:

全局变量:在所有函数外部定义的变量叫全局变量 使用范围:从定义位置开始到整个程序结束 局部变量:在一个函数内部定义的变量或者函数的形

参 都统称为局部变量

使用范围:只能在本函数内部使用 注意的问题:全局变量和局部变量命名冲突的问题 在一个函数内部如果定义的局部变量的名字和全局

变量名一样时,局部变量会屏蔽掉全局变量

按变量的存储方式

静态存储 自动变量 寄存器变量

20) 指针 指针的重要性

表示一些复杂的数据结构 快速的传递数据

使函数的返回一个以上的值 能直接访问硬件 能够方便的处理字符串

是理解面向对象语言中引用的基础

总结:指针是C语言的灵魂

指针的定义 地址

内存单元的编号 从零开始的非负整数 范围:4G【0-4G】 指针

指针就是地址, 地址就是指针 指针变量就是存放内存单元的编号 指针和指针变量时两个不同的概念

但是要注意:通常我们叙述是会把指针变量简称为指

针,实际他们不相同

指针的本质就是一个操作受限的非负整数 指针的分类

1. 基本类型的指针 Int *p; // 2. 指针和数组 指针和一位数组

数组名

一维数组名是一个指针常量,存放的是数组

第一个元素的地址 下标和指针关系

如果p是个指针变量,则 P[i] 永远等价于 *(p+i)

如果一个函数要处理一个一维数组,则要接受该数组的哪些信息 需要两个参数:

数组的第一个元素地址;数组的长度 指针变量的运算

指针变量不能相加,相乘,相除

如果两个指针变量指向的事同一块连续空间中的不同存储单元则这两个指针变量才可以相减

一个指针变量到底占几个字节 预备知识:

Sizeof (数据类型)

功能:返回值就是该数据类型所占的字节数 Char 1; int 4; double 8; 一个变量的地址使用该变量首字节的地址来表示 指针和二位数组 3. 指针和函数

4. 指针和结构体 5. 多级指针

专题:

动态内存分配【重点难点】 传统数组的缺点:

1. 数组长度必须事先制定,且只能是常整数,不能是变量

2. 传统形式定义的数组,该数组的内存程序员无法手动释放。数组一旦定义,系统为该数组分配的存储空间就会一直存在,除非数组所在的函数运行完毕时,数组的空间才会被系统释放 3. 数组一旦被定义,其长度就不能再更改; 数组的长度不能再函数运行的过程中动态的扩充或缩小

4. A函数定义的数组,在A函数运行期间可以被其他函数使用,但A函数运行完毕之后,A函数中数组将无法再被其他函数使用

传统方式定义的数组不能跨函数使用 为什么需要动态分配内存:

动态数组很好的解决了传统数组的这4个缺陷 传统数组也叫静态数组

动态内存分配举例---动态数组的构造:

静态内存和动态内存的比价: 跨函数使用内存的问题: 21) (七)