指针使用案例-C/C++中使用指针出现过的误区

案例:通过传递指针值读取内存中的数

一、
指针:
百科释义:
指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。
Wiki:
a pointer is a programming language object, whose value refers to (or “points to”) another value stored elsewhere in the computer memory using its memory address.

二、关于在传输指针的过程中是否需要加 ‘&’
指针本身的值就是指向电脑存储器中另一个地方的值。故只需要将其传输至另外一处,再对其引用即可。
这里写图片描述

案例:char *s 和char s[]的区别

char *s :
s是指针,指向内存中一块区域(存放在常量区),其指向的空间大小可变,但是如果其内容是常量字符串,则一般编译器是不允许修改其内容值的。

char s[]:
s指向数组的内存区域,其区域大小随数组而定,不可修改,但是可以修改其值,存放在栈区,随程序生命周期变化。

eg:
char *s1 = “hello”;
char s2[] = “hello”;

s1 = s2; //ok
s2 = s1; //error s2指向已定,不能修改

strcat(s1, s2); //error : s1指向的常量区不能修改
stecat(s2, s1); //ok

案例:函数返回的指针什么时候释放

http://www.cnblogs.com/khler/archive/2010/09/23/1833458.html

最好的就是那里使用那边释放,不要留到外面释放。

可以使用静态变量,但是有线程不可重入的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值