嵌入式开发(一)④浅谈一级指针

指针声明

标准格式
标准格式数据类型 * 变量名;

组成简介

  • 数据类型:int等c语言允许的数据类型–甚至void * ,一种待跳转类型的指针
  • *:间接运算符–在作为声明出现,表示申明了一个指针;而在操作指针变量时,表示间接访问,访问指针变量的值为地址的内存中的变量–访问方式为指针变量声明时的数据类型。
  • 变量名:指针变量的设计与普通变量名一样,但是需要知道,指针变量存储的值是一个地址,单纯的指针不代表数据,而指针指向的地址上的内容才是数据。

eg:

int * ptr;  // 声明一个指向int类型的指针变量ptr
char * ptr;  // 声明一个指向char类型的指针变量ptr

操作指针

指针赋值

       通常在声明指针时,需要对指针进行初始化。面对这样的需要,C语言允许对指针进行赋值初始化,进而避免出现默认随机的值--由于指针变量的值是一个地址,这样随机的地址,如果被使用,可能对一些被保护的内存/其他应用程序所在的内存进行操作,这样是危险的--这也叫做野指针。
初始化操作
int * ptr = NULL;

      NULL是一个预定义的空指针==0, 表示不指向任何地方,这样就不用担心野指针问题了
      另外的,如果在声明就希望指针指向一个确定的地址,我们可以通过以下的初始化方法:

      给指针初始化普通变量的地址:
int a = 5;
iint * ptr = &a;
//&a取a变量的地址,赋给ptr指针

      给指针初始化数组的地址:
int a[5] = {0};
int * ptr = a;
// a数组名表示数组这一块内存的首地址,可以直接赋给指针ptr

      最后,给指针赋值的操作,可以由以上的初始化总结为:
      指针的赋值,是赋给变量一个地址–这个地址来源于NULL或者其它确定的地址(可以是变量的、数组的以及malloc分配的地址)

eg:

int * ptr = &a;  // int a = 5;
int * ptr2 = a;  //  int a[5] = {0};
int * ptr3 = (int *)malloc(sizeof(int));

指针访问

指针声明:

int x = 5;
int * ptr = &x;

指针访问:

*ptr; // 访问ptr=&x的地址,返回数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL not error

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值