摘要:我们平时说指针,也可以指指针变量。是指针变量这段表达式的意思是定义了一个指针变量,里面存放的是的地址。叫做指针类型就叫做指针变量指针类型又是什么既然变量有不同的类型,比如整型,浮点型等。
类型名 指针变量 = 地址;例如:int* pa = &a;//我们这里的指针类型叫做int*,我读做(yin te 星号)。//pa是指针变量
int a = 10;
- 注意:
- int* 是一个类型。叫做指针类型
- pa就叫做指针变量
int* pa = &a;
char *pc = NULL;int *pi = NULL;short *ps = NULL;long *pl = NULL;float *pf = NULL;double *pd = NULL;//NULL为空指针。
- 指针的类型决定了指针向前或者向后走一步(也就是地址+1)有多大(能走多少个字节)
- 指针的类型决定了,对指针解引用的时候有多大的权限(能操作几个字节)。
int main(){ int n = 10;//定义整型变量n,初始化为10 char* pc = (char*)&n;//定义字符类型指针变量pc,初始化为n的地址 int* pi = &n;//定义整型指针变量pi,初始化为n的地址 printf("%p/n", &n); printf("%p/n", pc); printf("%p/n", pc + 1); printf("%p/n", pi); printf("%p/n", pi + 1); return 0;}
对一个狗形容为野的话,可以理解为这个野狗经常占别人的地盘,或者随机出现在任何地方
一、 指针未初始化
int main(){ int *p;//局部变量指针未初始化,默认为随机值 *p = 20; return 0; }
二、 指针越界访问
#include <stdio.h>int main(){ int arr[10] = {0}; int *p = arr; int i = 0; for(i=0; i<=11; i++) { //当指针指向的范围超出数组arr的范围时,p就是野指针 *(p++) = i; } return 0; }
- 指针初始化(就是把野狗栓到一个地方,不让他随便占别人的地盘)
- 小心指针越界(把野狗拴好,避免挣脱绳子)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/124784.html
摘要:另外,通过指针可以更便捷地操作数组。在一定意义上可以说,指针是语言的精髓。野指针成因除了未初始化还有就是越界访问或者指针指向空间已经释放。所以不难知道两个地址相减就是元素的个数,这个表达式的前提是两个指针指向同一块空间。 ...
摘要:函数底层实际上是对指针的操作隶书向,范围内比较等于的第一个元素返回迭代器。指定位置元素的删除操作使用查找所在位置的删除位置的数据,导致迭代器失效。因此删除中任意位置上元素时,就认为该位置迭代器失效了。 ...
摘要:在位机器上,如果有个地址线,那一个指针变量的大小是个字节,才能存放一个地址。就是一个指针变量,也有自己的类型,指针变量的类型我们可以发现指针的定义方式是类型星号。也就是说存储什么变量类型就用什么指针变量类型。 ...
摘要:指针变量可以存放基本类型数据的地址,也可以存放数组函数以及其他指针变量的地址。数组名表示的是整个数组所占的字节数。在这里数组指针的类型是。这也是我们可以用数组指针来接收二维数组数组名的原因。 目录 零.前言 一.指针的定义 二.指针类型的意义 1.指针类型决定了指针解引用时一次访问几个字...
阅读 4901·2021-11-25 09:43
阅读 1162·2021-11-24 09:38
阅读 1860·2021-09-30 09:54
阅读 2782·2021-09-23 11:21
阅读 2322·2021-09-10 10:51
阅读 2343·2021-09-03 10:45
阅读 1151·2019-08-30 15:52
阅读 1745·2019-08-30 14:13