-
C项目第三天
今天已经做了第三天的项目了,第一天基本没进展,第二天才出来界面,然后就一直卡在链表这儿了,已经卡了一天了,王老师说明天会带着我们梳理一下。其次就是函数的调用有问题,不知道如何在一个没有main函数的文件中调用另一个没有main函数的文件,在单个文件中用main函数测试都没问题,也不知道能不能这么调用,明天再问一下老师。因为项目的进程有问题,今天王老师专门给我们补了一下对项目有帮助的知识点,这一次讲解主要从理解的角度让我们尽快理解为主,待会还要找两道之前老师讲的数组和结构体的题目练习一下。
函数:
1.函数的定义:
来源方式:1>自定义函数 2>C库的提供(libc.so libm.so//数学) 3>操作系统提供的函数 4>第三方函数(单位人写的)
实现步骤:
1>确定函数的功能(功能精良单一),知道函数干什么用
2>分析已知、未知(传参)
3>写出函数头
4>步骤化实现过程
5>写代码
2.函数调用
使用过程:(跳转到函数体执行代码)
函数体第一条语句执行前两个系统默认动作:
a.执行形参定义语句(形参的本质:变量定义)
b.将实参表达式赋值给对应形参
返回过程:(返回到调用语句处)
系统默认将回收形参所占用的内存空间
内存的作用:
1>存指令
2>存数据:数字(类型)
地址(类型)
所谓的指针实际上是一种数据类型,这种类型的变量空间里面存放的是另外一块内存空间的首地址。这样的变量被称为指针变量,有时候也称为指针
数据类型的作用:定义变量和作为函数返回值类型
数据类型:
1>sizeof
2>变量定义
3>相关运算
4>函数形参
5>函数返回值类型
数组不能作为函数返回值类型
只有内存里面的字节才称为地址
变量定义语句蕴含的三个基本步骤:
1>给变量分配空间
2>给空间命名
3>决定空间二进制位的含义
每个变量均具有4个属性:(待补齐)
基本数据类型
数组,指针
自定义数据类型:结构体,联合体
void
一.void 空类型
不能定义void类型的变量
1.sizeof
sizeof(void)错误
sizeof(void *)正确 viod类型的地址 32位机是4个字节
2.变量定义
void v;//错误
void *pv;//正确
3.相关运算:无
4.void类型不能作为函数形参的数据类型,但是void*可以
5.可以作为函数返回值类型:表示本次调用不需要返回任何值
基本数据类型(int short long char float double)
1.sizeof(32位机)
int long:4 平台相关
short:2
float:4
double:8
char:1
2.三步理解法(三个步骤):
float f1;
位运算:
1.与.或.非.移位针对的是每一个二进制位
2.只针对无符号整型做位运算
数组:一种数据类型,该类型的变量空间里连续存放了N个相同类型(T)的元素(N为大于零的整型常量)
1.sizeof
N*sizeof(T)
2.变量定义语句
double arr[6];
float arr2[3][4];
数组不能作为函数返回值。
老师总结的遇到数组的方法:
1.N维数组都看成一维数组,一维数组里面的元素都是N-1维的数组
2.数组名在表达式中单独出现表示下标为0的只读地址
3.数组作为函数形参完全等价于指向这个数组里面的元素的指针
结构体:一种自定义数据类型,该类型的变量空间里连续存放着好多个不同(也可以相同)类型的元素。
struct Data(int y;int m;int d);
struct A
{
int a;
float f;
};
struct A sta;
结构体变量名可以做赋值运算
对结构体变量名可以取地址
访问结构体变量的两种方法:
1.通过空间名称直接访问
2.通过地址间接访问
结构体类型虽然理论上可以做函数的形参,但是一般不这么做,万一数据大,耗费时间和空间,一般会返回地址。
结构体类型理论上也可以做函数返回值类型。
网友评论