很多人觉得指针的学习很难,不容易懂,而且还迷茫的不行,今天我们就来看看学霸是怎么在课堂上学习的。
1、什么是指针?指针数据类型的作用?
指针是保存地址的数据类型;在不影响理解的情况下,有时对地址、指针和指针变量不区分,统称指针
1. *指针 所取得的字节数
2. 指针运算 指针+1 <===> 移动它所指向数据类型的字节数
2、什么是指针变量?
指针变量是用来保存地址的变量; 3、指针变量的定义
<存储类型> <数据类型> * 指针变量名;存储类型默认为auto; 4、指针的作用
间接操作内存
当需要函数的返回值个数大于一时,可使用指针5、所有的指针在内存中都占有四个字节;sizeof(指针变量)==4;
6、*在C语言中的三种用法
(1) 、双目运算符 4*5=20
(2) 、在定义变量时,*表示指针这种数据类型;
(3) 、作为单目运算符,*取值运算符;
7、定义一个基本类型的变量i,访问i的方式有两种:直接访问:通过变量名的方式去访问;
间接访问:通过空间的首地址来访问;
8、如果你想通过一个函数改变另外一个函数中的变量值,那么你可以将该变量的地址传过去进行改变;
9、将一个数组的首地址赋值给数组指针
指针变量名=&数组名[0]; 指针变量名=数组名;
10、指针的运算
对于不同数据类型的两个指针实行加减法运算是无意义的; 指针+n <===> 指针+n*sizeof(指针所指向的数据类型)
指针-n <===> 指针-n*sizeof(指针所指向的数据类型)数组名+n<===>指针+n<===>&数组名[n]<===>&指针[n];
*(数组名+n)<===>*(指针+n)<===>数组名[n]<===>指针[n];
*指针变量名<===>数组[0];
11、对于一个数组,不能数组名(地址常量)自加一(数组名++)是错误的!
12、数组作为形参时,他只是一个指针而已
13、注意Makefile文件的编辑;
14、注意使用gedit;
15、发生段错误表示可能操作了空指针或野指针;
16、NULL是一个保留地址,不可读,不可写; 指针指向常量 指针就不可被修改
指针指向变量 指针就可被修改
17、指针数组
18、函数指针
19、 函数指针数组