个人c语言中指针的理解

定义指针:

int * p;
int i;
p=&i;	//p是指向i地址的指针
*p=10;	//指的是i的值变成了10

指针在使用前一定要赋值 确定指针指向哪里

*为指针变量赋的值必须是一个地址
将指针变量初始化为空指针,意为该变量不指向任何值 int ptr=NULL;
将变量地址赋值给指针

int a;      int *p=&a; 或者 int a,*p;   p=&a;

同类型的指针变量之间互相赋值

int a	,*pa=&a, *pb;		pb=pa;

数组名就是指针

只是不能修改这个指针的指向
–可以吧数组的首地址赋给指针变量

short a[5],*p;
p=a;(或p=&a[0];)		
此时 a[i]就是*(a+i),*(p+i),p[i]		//说白了a就是p
   // 而表示地址时则用:
    a+i,p+i,&a[i],&p[i]

下列是否能表示数组元素的地址
a++:不能,数组名是地址常量,可以用:p++,p–,a+1
&p:不能,因为p已经是地址,&p表示a[i]的地址的地址
&p[i]:可以

malloc函数:
void * malloc(unsigned int size)
向系统申请大小为size的内存块,把首地址返回,申请不成功返回NULL
free函数:
void * free(void * p);
释放由malloc()申请的内存块,p是指向此块内存的指针

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值