【C语言】指针入门

 

       指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器中的寄存器。简单来说,指针  ==‘地址’。

      指针是一种变量,也有数据类型和相应的地址。

       1.指针变量的定义

       定义普通变量格式为:数据类型 变量名;指针变量定义如下:

int *p1;//定义了一个整型指针变量p1
char *p2;//定义了一个字符型指针变量p2
double *p3;//定义了一个浮点型指针变量p3

 

 

     这里引出了一个新的符号“*”,指针运算符 "*" 是一个单目运算符,通常称为间接访问运算符或解引用运算符。“*”的作用是跳到指针所指向的变量,简称解引用。指针变量只比普通变量多一个解引用。

       2.指针的赋值

       符号“&”是取地址符,就是取变量的地址。

int a = 10;//整型变量存放整型值
double b = 23.4;//浮点变量存放浮点值
int *p = &a;//定义一个整形地址(指针)变量p存放为a的地址即p=1000(假设a的地址为1000)

 

       3.指针的使用

int a = 10;
int b = 20;
int *p = &a;
*p = 100;//a = 100
p = &b;
*p = 200;//b = 200
int **pp = &p;//a -> &a:int -> int *; p -> &p:int * -> int **
	      //int **p2 = &&a; error
*pp = &a;//p = &a;(*pp = p)
**pp = 1000;//a = 1000;

       4.关键点 

     (1)以下三个是不同的操作,赋值操作与使用操作不用。

       int *p;定义一个整型指针类型的变量P

       p=&a;//赋值操作,将a的地址赋值给p

       *p=20;//使用p,借用p来访问a,对a的值进行修改

     (2)二级指针

       int *p;

       int **pp=&p;//定义二级整型指针变量**pp,并用p的地址对其赋值。**pp即指向p。

                            //只能对指针取二级地址,不能对常量取二级地址。如 int **p2 = &&a 错误 

      *pp = &a;//p = &a;(*pp = p) 

      **pp = 1000;//a = 1000 

    (3)不能将不是同一类型的变量地址赋值给指针。如:

      int a = 10;

      char b = 20;

      int *p = &a;

      p = &b;//int * = char * //error 

      //p = 1000;//error  

    (4)指针的大小:不管为几级指针,32位平台(x86)占4个字节,64位平台(x64)占8个字节

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值