笔记写的跟讲义一样啦!!! 汗哒哒~~~
指针部分:
前言: C语言中最重要的也最精彩的一部分---指针,它也是C的灵魂,有了它,程序更加简洁、紧凑、高效,比如可以在重复性操作下明显改善程序性能(e.g.遍历字符串,查取表格,控制表格及树状结构上。)很多编程语言都会支持某种形式的指针,或者是用到指针思想,所以指针这部分很重要。老师和学长都讲数组和指针是比较难的部分,但其实不然,只要用心学,别被他们的话吓到,学会它是so easy的事情。加油!~~~
正文:
指针其实是变量的一种,定义的方式大体上也和定义普通变量一样,但是有所区别。以下是对比:
int i;
<==> int * p;
(①会比定义普通变量前多个“”,它的作用是声明后面的这个变量是指针变量,而且“”和指针的变量名之间是有空格的,它不是指针变量的一部分;②定义的指针类型是有用的,整型定义的指针变量只能用来指向整型的变量,不能用来指向浮点型等其他类型的变量,否则会引起错误,这叫做就“基类型”。③指针变量也是变量,也要遵守“先赋值再使用”的原则)
和指针情同手足的两个特殊运算符“&”、“*”
说是情同手足是因为几乎每次出现指针变量就一定会出现它们俩,也就是说我们用指针的话就一定会用到它们。从这点我们也可以看出它们的重要性。
1、取地址运算符 “&”
e.g.
int a;
int * p = &a;
a = 100;
copy
如果不能确定指针的指向,可以先给它一个空的状态:int * p = NULL;
2、指针运算符 “*”
e.g.
a = p + 100;
copy
等价于
a = a + 100;
copy
等价于
* p = a + 100;
copy
注:“*”运算和“&”运算互为逆运算。它们均为单目运算符,运算顺序都是自右向左结合。
那么问题来了:指针都有哪些运算形式呢?
包括①算数运算、②关系运算和③赋值运算
下面简单说一下功能。 ①指针和整数的加减运算、指针的相减运算 ②比较两个指针变量中存储的地址值之间的相对位置关系 ③在程序中通过复制改变他们的指向
后话: 多写才能更好地体会指针的精髓,书上举例讲的都太过简单,它的作用只是告诉我们可以这样用,但是给人感觉特别不好,比如产生一种假象“还没我用普通方式写的简单呢”,其实多多练习,才能发现她的奥秘、精华所在。加油!~~
PS:
我们的教学用书上讲“*”和后面的变量名是有空格的,而且要求是必须有space,如果没有会有问题,而在实验楼的在线环境下有无空格是没有问题的。
学习时间 154分钟
操作时间 141分钟
按键次数 0次
实验次数 6次
报告字数 1932字
是否完成 完成