【c语言】指针

对于指针:

1.指针相当于取地址,指针==地址;

2.获取任何变量的地址都是:&变量名;

3.*指针变量名,则间接访问(解引用)到指针指向的变量;

 

以下面的代码为例,进行详细解释

int main

{

      int a=10;

      int b=20;

      int *p=&a;//这里的*p,是个定义,说明p是个指针变量;先定义后使用时:int *p;    p=&a;

      *p=100;//进行了解引用,则直接访问p所指向的变量a,所以该语句是对a赋值为100;

       p=&b;

      *p=200;//这里同理,对b赋值为200;

       int **pp=&p;//这里定义pp是个二级指针,int a,&a→int *,int *p,&p→int**;

      *pp=&a;//二级指针pp指向p,指针p指向的是a;使用二级指针时,去掉一个*号;

      **pp=1000;//进行解引用,二级指针pp直接指向变量a,所以a=1000;

      *pp=&b;//同上,p=&b;

      **pp=2000;//对b赋值为2000;

}

 

以下代码实现程序的奔溃

#include <stdio.h>
void fun(int **p)
//&a→int *,&p→int **
{
*p=NULL;//解引用
}
int main()
{
int a=10;
int *p=&a;
fun(&p);//被调用函数调用指针变量时,必须对变量取地址
printf("%d",*p);
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值