标准C学习day07 可变长数组 多维数组

数组还可以把存储区进行分组

   第一组           第二组

| **** **** **** | **** **** **** |

一维数组不可以表示存储区的分组情况
多维数组才可以表示存储区的分组情况

二维数组是最常见的多维数组,它只能
表示一次分组情况
为了表示二维数组里的存储区需要提供
两个下标
可以采用双重循环依次处理二维数组里的
每个存储区

二维数组也应该进行初始化
二维数组可以象一维数组一样进行初始化
可以对初始化数据进行分组
如果可以根据初始化数据个数计算出分组
个数就可以省略二维数组声明里的
分组个数

二维数组名称可以代表数组里第一个存储区
的地址

int arr[3][2];

| **** **** | **** **** | **** **** |
^
*
*
*
arr

二维数组名称不可以被赋值

可以对二维数组名称进行sizeof计算,
结果是二维数组里所有存储区的总大小

二维数组名称后也可以只使用一个下标,
这个下标是组下标

int arr[3][2]
组下标为0 组下标为1 组下标为2
| **** **** | **** **** | **** **** |
^
*
*
arr[1]
arr[num]表示组下标为num那一组里第一个
存储区的地址
二维数组里每组存储区可以看做是一个一维
数组,二维数组名称后加组下标可以作为
这个一维数组的名称使用

int arr[3][2]

组下标是0  组下标是1   组下标是2

| **** **** | **** **** | **** **** |
---------
arr[1]

可以采用分组的方式管理程序里的语句
每个语句分组叫做一个函数

多函数程序执行时的时间分配必须遵守
以下规则
1.整个程序的执行时间被分成几段,每段
由一个函数使用
2.不同时间段不能互相重叠并且所有时间段
必须连续
3.如果函数A把时间分配给函数B使用则
函数B结束后必须把时间再还给函数A

如果函数A把时间分配给函数B使用则它们
之间存在函数调用关系
函数A叫做调用函数,函数B叫做被调用函数
函数调用关系只在被调用函数工作期间有效

函数调用语句可以产生函数调用关系

变量只能在函数里使用,其他函数不可以使用
不同函数里的变量可以重名
如果函数多次执行,每次执行的时候变量
代表的存储区都不同
声明变量的时候可以使用volatile关键字,
这种变量的内容可以被其它程序修改

函数调用过程中通常伴随着两个函数之间
的数据传递
数据传递存在两个完全相反的方向
一个方向是从调用函数向被调用函数
另一个方向是从被调用函数向调用函数
不论那个方向的数据传递都需要把数据
记录在被调用函数的存储区里

只能从被调用函数向调用函数传递一个
数据
这个数据叫做被调用函数的返回值
被调用函数只能在最后一步才能传递
返回值
被调用函数需要提供一个专门的存储区
用来存放返回值
编写被调用函数的时候需要把这个存储区
的类型名称写在函数名称前
在被调用函数里使用return关键字向
这个存储区里放返回值
调用函数里直接把函数调用语句作为数字
使用就可以得到返回值

如果没有使用retuan关键字设置返回值
这个时候返回值是一个随机数
调用函数得到返回值以后或者立刻使用,
或者存放在别的存储区里
如果函数没有返回值在编写的时候就应该
在函数名称前写void
如果函数名称前什么都没写在C89规范里
表示函数有一个整数类型的返回值,
在C99规范里不允许这样

函数不可以用数组存放返回值

可以从调用函数向被调用函数传递多个
数据,这些数据的类型可以不同
被调用函数需要为每个传递过来的数据
提供一个专用的存储区
代表这些存储区的变量应该声明在函数
名称后面的小括号里
这些变量叫做形式参数
小括号里的所有内容叫做形式参数列表
每个形式参数的类型名称都不可以省略
被调用函数里就可以把形式参数当做
变量使用

调用带参数的函数时需要为每个参数提供
一个对应的数字
这些数字叫做实际参数
只要能作为数字使用的内容都可以作为实际
参数使用
如果函数没有形式参数就应该在小括号里
写void
如果小括号里什么都不写表示函数有任意
多个不确定类型的形式参数

被调用函数


  •               *
    
  •               *
    
  • 形式参数 *
  • val val1 *

  • 3 8 11 *


^ ^ *


    • V    调用函数
      

  •               *
    
  • 3 8 *
  • 实际参数 *
  •               *
    
  •               *
    
  •               *
    
  •               *
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值