指针变量与指针

指针:一个变量的地址

 

指针变量:存放另一变量的地址(即指针)。

(1)定义:

定义的一般形式:基类型  *指针变量名;

基类型:用来指定指针变量可以指向的变量的类型。

 将决定指针移动和运算时的移动量。

  构成:[储类型]    数据类型

* :表示该变量为指针类型

例   int *p1,*p2;

       float   *q ;

       static  char  *name;

注意:指针变量定义后,变量值不确定,应用前必须先赋值

(2) 进一步理解&与*运算符:

例如:int *p,a;

a=3;

*p=a;

这表明:

将&a——>p;

a——>*p

相当于:

p=&a;

*p=a=3;

(3)指针变量的初始化:

一般形式:[存储类型] 数据类型  *指针名=初始地址值

1、变量与指针类型一致。

int i;

int *p=&i;

2、用已经初始化的指针变量做初值。

int i;

int *p=&i;

int *q=p;

3、auto型地址不能初始化static型指针。

int a;

static int *p;

*p=&a;//会报错

4、给指针变量赋值:

指针变量赋值:

int  i, j;

int  *p1, *p2;

p1=&i; p2=&j ;

i=3; *p1=5;

j=6; *p2=8;

使用该程序进行对指针初始化的理解。

#include<stdio.h>
int main()
{
    int a, b, * p1, * p2;
    a = 10; b = 9;
    p1 = &a; p2 = &b;
    printf("%d ", p1);
    printf("%d ", p2);
    printf("%d ",*p1);
    printf("%d ",*p2);
}

 *空指针变量的初始化

初始化原因是防止指针乱指;有的时候我们不知道要对变量赋多少值这个时候我们就用空指针来进行占位——>就是确定一个内存单元

#include <stdio.h>

void main(  )

{

    int  *p=NULL;

    printf("%x\n",p);

}​​​​​​​

*、&同为2级、结合性:从右向左

int a,b,*p1,*p2;

p1=&a;

p2=&b;

&*p1=&a=p1;

*&a:先进性&a得到a的地址,在对a进行运算,即指向a地址所指向的变量,就是a。

运算符*、++:结合性:从右到左

(*p1)++  ->a++

p1++ ->(p1++) //p1原来指向a,现在指向下一个地址了。

指针变量作为函数参数的特点:

共享内存,双向传递。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值