C指针编程之道--------笔记

来源:互联网 发布:熟练掌握编程 英文 编辑:程序博客网 时间:2024/04/30 14:06
1.指针作为函数参数传递,出入的是指针的地址.
2.可以通过指针形参改变变量的值,注意指针类型要相同。
3.函数指针
定义:数据类型 (*P)(void)
int (*p_fun)();返回值类型为int的函数指针,指针变量为(*p_fun),变量名为p_fun,括号不能省略.


指针变量在使用前要初始化。

4.函数指针与指针函数
返回值是指针的函数叫函数指针----函数。
函数指针-----是地址(变量)。


5.单向队列会产生假溢出【队列头有数据,但是不能插入数据】。
链队出队时要释放空间。


6.特殊线性表---堆栈
栈底不变,栈顶变化,先进后出


7.动态链表
 链表----链式存储的线性表
 链表的连接和物理顺序没有关系。
分类:
静态链表,动态链表;单链表,双链表,循环链表




const指针
const int *p  p是指向整形常量的指针,可以修改指针的值【地址可以修改】,但是不能修改指针指向的值。
和 int const *p相同
int *const p p是一个常指针,p是常量,值无法修改【地址无法修改】,但是可以修改p所指向的整形值。
指针的地址不能修改,但是值可以改。
const int *const p 指针的地址和都不能修改。
判断方法
const int *===p  const位于左侧,修饰变量。指针指向为常量。
int *===const p  cosnt位于右侧,修饰指针。指针为常量。
const 做形参
void fun(const int *p) cosnt用于函数形参是说明形参在函数内部是不会改变的,
const用在函数返回值
const int fun();返回值不能更新,为内部类型【true or false】
数组中不允许使用const定义的值。 const int a; int bb[a];错误




volatile
嵌入式系统的寄存器定义;中断中的变量;多任务的共享变量。


register 变量存储在机器的硬件寄存器中而不是内存中。
访问效率高,速度快,数量有限。
0 0