![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
指针
文章平均质量分 52
指针的各种操作
Sunny嵌入式开发
攻城师
展开
-
函数指针的应用
函数指针的形式:形式1:返回类型(*函数名)(参数表)char(*PTRFun)(int);char glFun(int a){ a=a+2; printf("a=%d",a); return 0;}void main(){ PTRFun=glFun; (*PTRFun)(2);}也可以用typedef 来定义而typedef可以让函数指针更直观方便形式2:typedef 返回类型(*新类型)(参数表)typedef char(*PTRFun)(...原创 2022-04-06 16:24:01 · 121 阅读 · 0 评论 -
常量指针、指针常量与指向常量的指针常量的区别
常量指针、指针常量、指向常量的指针常量三个名词虽然非常绕嘴,不过说的非常准确。用中国话的语义分析就可以很方便地把三个概念区分开。一) 常量指针。常量是形容词,指针是名词,以指针为中心的一个偏正结构短语。这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。在C/C++中,常量指针是这样声明的:1)const int *p;2)int const *p;常量指针的使用要注意,指针指向的对象不能通过这个指..转载 2022-04-03 10:56:37 · 792 阅读 · 1 评论 -
什么是“NULL指针”,“悬空指针”和“野指针”?
1,什么是NULL指针?NULL用于指示指针未指向有效位置。理想情况下,如果在声明时不知道指针的值,则应将指针初始化为NULL。另外,当由它指向的内存在程序中间被释放时,我们应该使指针为NULL。2,什么是悬空指针?悬空指针是没有指向有效内存位置的指针。当删除或释放对象时,如果不修改指针的值,就会出现悬空指针,因此指针仍然指向释放后的内存的存储位置。以下是示例。悬空指针C语言中的指针可以指向一块内存,如果这块内存稍后被操作系统回收(被释放),但是指针仍然指向这块内存,那么,此时...原创 2022-03-29 21:29:57 · 2379 阅读 · 0 评论 -
指针的指针
示例:int main(void){ int a[6]={1,2,3,4,5,6},x,y; int *p,**k; p=a; k=&p; x=*(p++); y=**k; printf("x=%d",x); printf("y=%d\n",y);}上面输出的结果为x=1 y=2p为指向数组a[6]数组名为a的指针,p指向数组的首地址,即p指向数组元素a[0]=1的地址。k为指向指针p的地址的指针,即指向指针的指针。*(p++) 先输出*p 然后p++,原创 2022-03-19 22:39:07 · 630 阅读 · 0 评论 -
指针知多少
前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧: int p; //这是一个普通的整型变量 int *p; //首先从P 处开始,先与*结合,所以说明P 是一个指针,然后再与int 结合,说...转载 2022-03-21 20:47:17 · 75 阅读 · 0 评论 -
指针(++p, p++, *p++,*(p++),(*p)++,*++p,++*p)的区别
一,++p,p++++p是先对p自增,再使用p的值.p++是先使用p的值,再自增二,*p++,*(p++) 两者相同 " * 和++ "优先级相同 自右向左结合,*p++可以看作为*(p++) 其中(p++)先使用p的值,再自增1 假设地址为0x00, *(p+1)则取0x00的地址值.三,(*p)++先分析优先级,有括号,先计算括号内,即先计算(*p)得到X,再计算X++.四,*++p*和++优先级一样,考虑自右向左结合,所以++p先计算得到X,再计算*X.++p是对p地址原创 2022-03-20 12:35:53 · 5992 阅读 · 0 评论