C语言指针1-定义

指针是一个变量,存储的是另一个变量的地址。

例如,有如下代码:

int a = 3;

int *ptr = &a;//定义一个指向整形的指针,变量前加一个*即为一个指针变量

可以这么理解,定义变量a后,系统为a分配一个大小为sizeof(int)的空间,该空间的地址存放在变量ptr中。

如果printf("%p", ptr);则打印输出0xbfb12000。

用图表示即为:

变量ptr=0xbfb12000, *ptr=3(0xbfb12000空间存储的值), &ptr=ptr变量的地址

 

区分变量与指针变量:

int a;

float b;

double c;

char d;

char e[8];

float *f = &b;

char *g= "abcdefg";

void *h;

其中a,b,c,d,e[0]是普通变量,e是数组的首地址,可看做是一个指针,f,g,h都是指针变量。

变量的地址用取地址符来获取,如&a, &b, &c, &d,&e[0](取e[0]的地址,等于e),&e[7],同样可以&e, &f, &g, &h。

指针的值的获取,用*,如*f则输出变量b的值。

 

指针变量的类型与大小:有

int *a;

float *b;

double *c;

char *d;

void *e;

还有自定义类型,等等

不管什么类型的指针,其所占用的空间大小是一定的,在32位机上,

sizeof(float *)=sizeof(int *)=sizeof(long *)=sizeof(long long *)=sizeof(double *)=sizeof(char *)=4字节。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值