C语言指针(浅谈)

一,变量

       C语言中定义一个变量之后,就可以知道两个信息:1变量的名字,2变量的地址(即它在储存单元的位置)。就像旅客住进酒店之后,酒店便知道了旅客的名字和门牌号这两个信息一样。

       形如:

int a =3;

      这样就定义了一个INT型变量,它的名字叫一个,它的值为3;

 

      当对变量赋值时,是通过这样的操作:

int a;
scanf("%d",&a);

      注意“&”取地址符。对一个变量赋值时,在Ç语言中会先按地址找到这个变量,然后再将值赋,即在此需先取得一个的地址,即先找到一个的内存中的位置,然后赋给它值,这种赋值方法是计算机科学中的一种惯例。

     例如若服务员要给旅客送物品,如果告诉仅仅服务员旅客的名字,服务员几乎不可能找到这位旅客;但如果告诉服务员旅客的门牌号,那么就能很快就能找到.C语言中也一样,对任何一个变量的操作都不是依赖变量名,而是依靠其地址,因为变量名可以随意更改,但一个变量一旦定义其地址就在内存或寄存器中固定了下来。

 

         例如,对以下两个变量输出它的地址 

#include <stdio.h> 
int main (){
   int  a;
   char b[5];
   printf("a 变量的地址: %p\n", &a);
   printf("b 变量的地址: %p\n", &b);
   return 0;
}

       

 

二,指针

      指针是Ç语言的特色,号称初学者的第一噩梦,许多人都让指针造成了巨大的心理阴影,下面就来了解一下。

      首先,指针是一个概念,指针变量是具体实现,这一点先不要弄混。指针变量是专门用来储存地址的变量。

      指针变量的值是另一个变量的地址。前文提到,对变量的操作必须依靠变量的地址,而如果每次都通过&来取得一个变量的地址,实在有些繁琐,所以了设立指针变量这一个变量专门来储存某一个变量的地址

int *p;

       这样就定义了一个INT型指针P,它就可以储存一个INT型变量的地址

int a,*p; 
p = &a;

 

#include<stdio.h>
int main(){
    int a = 3;
    int *p;
    p = &a;     //p的值就是变量a的地址
    printf("a的地址是%8d\np的地址为%8d\n*p的值为 %8d\n",&a,p,*p);
    return 0;
}
    

运行结果

即p的值为a的地址,如若求一个的值则可通过* p来取得,即* p和a等价。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值