指针1

指针(变量)

1.T *p T可以是int, char, double等,p是指针(变量),p的类型T*

*p 类型为T ,它表示存放在地址p处的一个T类型的变量,通过*P可以读取从p开始的sizeof(T)个字节;指针就是地址。

char ch1=‘a’;  char * pc=&ch1;(解读:ch1是一个char类型的变量,让指针pc指向ch1;

2.同类型的指针(地址)可以比较大小,可以进行加减运算,可以自增自减

p1-p2=(p1-p2)/sizeof(T)  p1,p2为T*类型

p1+n指向地址p1+sizeof(T)

p[i]等价于*(p+i)   

*p等价于p[0]

3.地址0不能访问。指向地址0的指针就是空指针,可以用“NULL”关键字对任何类型的指针进行赋值。NULL实际上就是整数0,值为NULL的指针就是空指针:

int * pn = NULL; char * pc = NULL; int * p2= 0;

指针可以作为条件表达式使用。如果指针的值为NULL,则相当于为

假,值不为NULL,就相当于为真

if(p)     if(p!=NULL)  if(!p)     if(p==NULL )

4.通过指针,程序能访问的内存区域就不局限于变量占据的内存区域;对指针p进行加减操作就能访问p指向的前面或后面的内存区域

学习指针之前,我们只能访问已经定义好的变量所占用的内存

5.指针作函数参数main函数swap(&a,&b)   void(int *a,int *b)

6.指针和数组的联系

数组的名字是一个指针常量,指向数组的起始地址T a[n]中:a的类型是T*

作为函数参数时,T *a等价于T a[ ]

7.指针变量可以有空值,即该指针变量不指向任何变量

p=NULL;就是使p指向地址为0的单元(无效单元)

它跟p未被赋值是不同的,p未赋值时可能指向任何一个单位,这种情况是很危险的,因此应用指针之前应该对它进行赋值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值