详解指针(初阶)第二篇

简介: 详解指针(初阶)第二篇

void*指针

1. void*指针就像一个垃圾桶,他可以接收任何类型的指针。

2.void*指针不能直接进行解引用操作

3.void*指针不能直接进行加减整数运算


const修饰指针

被const修饰的变量不能被改变,但该变量本质上还是变量,你可以理解为常变量。我看如下代码,来理解以下const修饰指针变量的效果。

int a = 0;
 
const int* p = &a;
 
int const * p = &a;
 
int* const p = &a;

第二行代码:首先const修饰的是*p,*p指向的是a空间,我们不能通过*p来改变a空间的值。但const并没有修饰我的指针变量p,所以我能改变p的值,也就是说我可以改变p所指向的对象

第二行代码和第三行代码的效果相同

第四行代码:这次const修饰的是p,也就是说*p指向的a可以改变,而p所指向的地址不可以改变


数组与指针

数组名

数组名在大多数情况下表示的是数组首元素的地址,但又两个例外,

1.sizeof(数组名), 这里的数组名表示的是整个数组的地址

2.&数组名,这里的数组名表示的是整个数组的地址

数组首元素的地址数组的地址在值上是相等的,但二者检索和跳跃的权限(大小)是不一样的,用数组首元素的地址检索,只能检索该元素。同样,也只能跳过该元素。而用数组的地址检索和跳跃的权限是整个数组。

相关文章
|
存储 算法
【数据结构】单链表---C语言版(全网最最最最细!小白必必必必看!!!有图有真相!)(一)
【数据结构】单链表---C语言版(全网最最最最细!小白必必必必看!!!有图有真相!)(一)
101 0
|
存储 C语言 索引
从零开始教你拿捏指针---指针初阶
从零开始教你拿捏指针---指针初阶
79 0
|
算法
【数据结构】单链表---C语言版(全网最最最最细!小白必必必必看!!!有图有真相!)(二)
【数据结构】单链表---C语言版(全网最最最最细!小白必必必必看!!!有图有真相!)(二)
71 0
进阶指针大全(上篇)
进阶指针大全(上篇)
73 0
指针的进阶【中篇】
指针的进阶【中篇】
71 0
指针的进阶【下篇】
指针的进阶【下篇】
65 0
|
存储 C++
指针的进阶【上篇】
指针的进阶【上篇】
82 0
|
存储 算法 NoSQL
【数据结构】顺序表---C语言版(数据结构开篇小菜,全网最详细!小白看一遍就学会!!!)
【数据结构】顺序表---C语言版(数据结构开篇小菜,全网最详细!小白看一遍就学会!!!)
287 0