前言
为什么要学习指针:
指针的重要性 1.可以通过指针表示一些复杂的数据结构 2.快速的传递数据,减少了内存的耗用
提示:以下是本篇文章正文内容,下面案例可供参考
一、指针的声明和定义
我们可以使用的基本指针类型char, short, int, long, long long, float, double
1.指针的声明与定义
1.指针的声明
int *p;
形式:类型+*+变量名;
int 表示p装的地址对应的空间的数据类型
*表示p是一个指针变量
p是指针的名字
2.指针指向空间
意义:指针就是装地址的变量,变量就要赋值,即一定要装一块空间的地址,或者说指向一块空间,才能被使用。就像int a;,如果没有被初始化,没有赋值,这东西啥也不能干。指针变量也是同理,不装地址的情况下,啥都不能干,也叫野指针
初始化
int a=12;
int *p=&a;
赋值
int a=12;
int *p;
p=&a;
模型:
注意:
1、指向是什么意思:装哪块地址,就指向哪一块空间
2、类型一定要对应上:类型决定指针的读写方式
2.通过指针操作所指向的空间
1、指向其他空间
int a = 12;
int b = 18;
int *p;
p = &a;
p = &b;
通过重新赋值指向其他的空间
2、通过地址间接操作所指向的空间
1.内存操作符"*"
“*”名为内存操作符
使用方法:* + 变量名
这个地址一定是合法地址.
一个指针指向一个变量,*这个指针,就是变量本身
什么意思呢:
读
int a = 12;
int *p = &a;
printf("%d", *p);
这时的"*"是内存操作符
写
int a = 12;
int *p = &a;
scanf ("%d", a);
取地址
//p为指向变量的地址
//&p为他本身的地址
2、类型决定内存操作
1.所指向的空间是什么类型,那么*p 就一次操作多大的内存空间
2.一个小范围的指针可以指向大范围的空间,并且操作不异常,虽然结果不太对
3.一个大范围的指针不可以指向小范围的空间,否则操作异常,结果更不对
总结
1.指针的声明与定义
2.通过指针操作所指向的空间