C 指针

long     *p3=352;  //wrong!!
change to
long   *p3;
*p3=352;  //still wrong!!
change to
long   a;
long   *   p3=&a;       //等价于   long   *   p3;   p3=&a;
*p3=352;


******************************************************************
你要注意指针概念,什么时候是[声明],什么时候是[取]指针指向变量,这点一定要搞清楚。

long   *p=352
//你在   [声明]   一个指针并且初始化,一个指针存放的应该是一个地址,而352是个整数,类型
//不一样,能编译通过吗?


long*   p3;//你在[声明]一个指针,但是没有初始化,他就随机指向某个地址,所以这样的情况
//对于c/c++是十分危险的,编译器一般会有警告,作为程序员应该注意这点,建议初始化一下。

*p3   =352;//你在[取]指针p3所指向的整型变量,并对其赋值352
*********************************************************************
long   *p3;
*p3=352;
这段代码编译没错,向p3指向的地址中放入352这个数,但是p3的值没有初始化,它指向的地址不确定,所以p3现在是野指针,运行时也可能程序崩溃。总之,p3和*p3是不一样的。
可以这样:
long   a;
long   *   p3=&a;       //等价于   long   *   p3;   p3=&a;
*p3=352;
这时*p3和a都是352了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值