同学们终于学到最有意思的东西:指针了。有人说指针是C语言的灵魂。虽然有点夸大,但是事实的确是如此。很多的时候,使用指针,会让过程变得简洁和精巧。这个在以后同学们深入学习使用C语言进行编程的时候就可以理解了。
下面还是按照往常的样子,进行本次知识点的总结:
需要知道,指针本身也是一个变量,在内存中仅仅是存储一个数据,只是这个数据很恰好是一个地址而已;
指针起到一个指向的作用,通过解引用
*
可以很方便的得到指向目标的内容一定要记住指针的几种形态:
// 声明
int *pa; // 声明一个名为 p 的指针,需要注意的是,* 号本身仅仅表示 p 是一个指针变量
int a;
// 定义 == 赋值
p = &a; // 将 p 的内存空间中的数据定义为 a 的地址
// 声明且定义
int b;
int *pb = &b;
// 有一个函数,参数是一个指针
int *pa = &a;
int *pb = &b;
int func(int *a,int*b,int *c,int *d);
func(pa,pb,&a,&b); // 函数调用时传入的实参
// 数组和指针的关系
int a[10];
int *parr = a; // 数组名就是数组的地址,也是数组元素 0 的地址
在 C 语言中,数组和指针的界限并不明显,比如在向函数传参的时候,即使你写成
int func(int a[3]){} // 甚至这里写下了数组的长度
但是实际上这里编译器会视作你传递进去int *a
的指针,对于一个指针而言,并不能有效的知道它的长度。这就是为什么多数情况下看到的函数,一旦传递入一个指针作为数组的首地址,都会跟随一个int
类型的数值作为长度。
指针,务必需要注意,一定要先初始化即定义/赋值
后再使用,否则,编译器无法知道你到底想要操作的是哪块内存区域:
int *p;
*p = 0; // error
不过万幸的是,大部分类似于这样的错误,在运行的时候,都会出现非常明显的错误。但是同学们依旧应该对此情况多多用心。
谈到这里,忽然想要跟大家聊聊野指针,可是忽然想到大家都还没有学习过诸如malloc
这样的函数,那还是暂时作罢吧。不过类似上面的p
就是一个野指针(即它没有指向一个明确的内存区域)。
以下为本次成绩
编号 | 学号 | Cnblogs昵称 | 代码 | 总结 | 附加题 | 加权得分 | 备注 |
---|---|---|---|---|---|---|---|
1 | 160809401 | 付胤 | 50 | 85 | 64 | 总结错别字较多,代码完成度低 | |
2 | 160809402 | 张博洋 | -100 | -100 | -100 | 总结不是总结,代码不是代码 | |
3 | 160809403 | 董宇豪 | 90 | 60 | 78 | 总结写的过少,一些必要的点没有写到 | |
4 | 160809404 | 朱念齐 | -100 | -100 | -100 | 没有写 | |
5 | 160809405 | 芦彦儒 | -100 | -100 | -100 | 没有写 | |
6 | 160809406 | 吴泽轩 | 0 | ||||
7 | 160809407 | Leonardo#* | -100 | -100 | -100 | ||
8 | 160809408 | iL.linker | 100 | 100 | 100 | ||
9 | 160809409 | gdcs16_409 | 95 | 95 | 95 | ||
10 | 160809410 | 无声的梦 | 100 | 40 | |||
11 | 160809411 | 刘悦 | -100 | -100 | -100 | ||
12 | 160809412 | 张磊 | 90 | 36 | |||
13 | 160809413 | 王洪烨 | 110 | 90 | 102 | 注意到检查传入函数的指针是否为空 | |
14 | 160809414 | 纪柏如 | 110 | 44 | “说明符”这一概念很有意思 | ||
15 | 160809415 | 闫墨杰 | 110 | 100 | 106 | ||
16 | 160809416 | 史航 | 110 | 95 | 104 | 终于有人用强制类型转换了 | |
17 | 160809417 | 狂欢 | 90 | -100 | 14 | 没有写总结 | |
18 | 160809418 | 水母Jam | -100 | -100 | -100 | ||
19 | 160809419 | 朱钰铖 | -100 | -100 | -100 | ||
20 | 160809420 | 虞小生 | 60 | 90 | 72 | ||
21 | 160809421 | 饮冰少年1 | 100 | -100 | 20 | ||
22 | 160809422 | 0 | |||||
23 | 160809423 | 李筱 | -100 | -100 | -100 | ||
24 | 160809424 | Xzy! | 65 | 90 | 75 | ||
25 | 160809425 | 刹那神华 | -100 | 100 | -20 | ||
26 | 160809426 | zlt.Santorini'Ly | 95 | 95 | 95 | 总结细致 | |
27 | 160809427 | 江超民 | 95 | 90 | 93 | ||
28 | 160809428 | zxkai | 95 | -100 | 17 | ||
29 | 160809429 | 王鑫沐 | 95 | 95 | 95 | ||
30 | 160809430 | 茉妍 | 95 | 95 | 95 | ||
31 | 160809431 | 茉莉雨 | 95 | 110 | 101 |