指针与指针用法


指针与指针变量


在C语言中,将地址形象地称为“指针”。一个变量的地址称为变量的“指针”。一个专门用来存放另一个变量的地址的变量,则称它为“指针变量”。
或者说,如果有一个变量专门用来存放地址,那么这个变量就是指针变量,即存放变量地址的变量是指针变量。
指针的定义格式为:

  基类型 *指针变量名

例:

int *a;
float *b;
char *c;

指针的用法


在变量前面加上符号&,表示变量的地址,如&a。可以将&a赋值给一个指针。

#include<stdio.h>
void main()
{
     int a = 10;
     int *i =&a;

}

需要注意的是:
对指针赋值时,指针的类型应与其指向的值的类型相一致。
而且int *p=&a 等价于 int *p; p=&a;
但在赋值时,还有一种表达方式是: *p=a
可是如果a是int型,int *p=a是错误的,因为在定义的时候不能给p直接赋值整型,只能赋值int型地址 即 &a;
如果要给p指针指向的地址赋值,就可以*p=a;但不能在定义*p的时候直接赋整型。
如果非要在定义时赋值,如int *p=a;,则a必须是个地址或指针,也可以是数组名。
例如:

int a[5];
int *p=a; //前面定义是数组或是地址、指针,才可以这样赋值。
int a;
int *p=&a; //前面定义的a是普通变量,才可以这样赋值。

容易混的地方:
对于*p=a; //不是定义时赋值,是定义后赋值来说,p和&a表示变量a的地址,*p和a表示变量a的值;
p++表示地址加1;
(*p)++表示指针指向的数据加1(即a+1);
在字符串中,*(p++)等同于s[n++]


指针数组和指向指针的指针


若在一个数组中,其元素均为指针类型数据,这样的数组称为指针数组。

类型名 *数组名[数组长度];

指向指针数据的指针变量,简称为指向指针的指针,通常称为二级指针。

类型名 **a;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值