C语言重难点总结:指针

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言重难点总结:指针相关的知识,希望对你有一定的参考价值。

一:指针和数组名的关系

(1)[]运算符

[]运算符的作用:,编译器会这样处理a[i]==*(a+i)

在这里插入图片描述

(2)指针和数组名的关系

数组名是指针常量,普通指针是指针变量

在这里插入图片描述
所以如果执行int* const p=a,表示将指针修饰为常量,因此此时的p和a就基本一致了,也是不允许修改的
在这里插入图片描述

二:const修饰指针问题

简记:const放在谁后面就修饰谁

1:const int iint const i等价,表示i的内容不可被修改

2:const int* iint const* i等价

首先i是指针,const修饰了int,表示指针可以变化,但是指针指向的内容不能被修改
在这里插入图片描述
3:int* const i

const修饰的是指针,指针不可变,但是指向内容可以修改
在这里插入图片描述
4: const int* const i = &a;

这个就是上面的综合情况,指针不能修改,指向的内容也不能修改
在这里插入图片描述

三:指针数组和数组指针

如果没有()就是指针数组,如果有()就是数组指针

在这里插入图片描述

在这里插入图片描述

  • 所谓指针数组,就是存放指针的数组,它的里面存放的全部是指针
  • 数组指针,其主语就是指针,数组指针也就是指向数组

四:函数指针

数组指针是指向数组的,函数指针就是指向函数的,也就是函数也是有自己的地址的

在这里插入图片描述

以上是关于C语言重难点总结:指针的主要内容,如果未能解决你的问题,请参考以下文章

C语言重点难点精讲C语言指针

c语言指针复习 难点突破 双重指针 函数指针结构体指针等...

详解C语言那些可怕的野指针

C语言知识分享:野指针!野指针怎么样产生的?又怎么避免呢?

C语言自定义类型重难点总结(结构体位段枚举联合)

大牛带你学 | C语言的指针及相关运算符总体归纳