指针和字符串

一、指针变量和引用的区别:
1、指针是一种值,可以被存储,可以在表达式中被求值,可以在函数之间传递,也可以被返回;引用虽然有类型,但它不是值;
2、指针变量的声明必须保证其类型要与指向的对象类型兼容,引用是一个现有对象的别名,是对变量的一种间接访问形式;
3、引用在创建时就必须初始化,不存在空引用,而指针可以为空指针;
4、一旦引用被初始化为一个特定对象,该引用就不能指向其他对象了。
二、函数指针:
1、 声明:函数类型(*指针变量名)(参数) 括号都不能省略;
2、可通过函数的指针调用相应的函数;
3、函数的指针可以作为另一个函数的参数;
三、指针函数:
1、语法形式:类型标示符 * 函数名(参数表)
2、含义:指针函数是返回值是指针的函数;
四、const修饰指针随着const的位置不同含义也不同,若const在之前表明这个指针是一个常量指针,即指针指向的对象是一个常量;若const在 之后,表明声明的是一个指针常量,即指针所标识的地址不可以发生变化。
五、C++中常见的指针使用中的错误:
1、指针未初始化,一般情况下,定义的过程中将指针初始化为NULL,后续过程中可以通过指针和NULL是否相等来判定指针是否有效;
2、指针越界,有时通过指针的递增或者递减会造成指针越界的错误;
3、指向局部变量的指针,指向局部变量的指针,在离开此局部变量区域,该指针会被系统回收,不可继续使用;
4、指针指向的转移,指针指向的转移会导致内存泄露的情况,而且不适用new分配的内存空间,不能用delete释放。
六、字符数组和字符指针:
1、存储方式不同,同一个字符数组长度=字符指针的长度-1;
2、字符数组是由不同的元素组成,而字符指针是字符串的首地址;
3、赋值方式不同,字符数组定义是可整体赋值,但是不可通过赋值语句整体赋值,而字符指针可以整体赋值;
4、定义字符数组时编译器就给其分配了固定的内存单元,有确定的地址,而对于字符指针变量,在为其分配内存单元后,如果未给其赋予地址值,是很危险的;
5、指针变量的值可以改变,而数组名是常量,不能改变。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值