Const指针 、 指向const的指针 、引用、指针
2016-09-27 10:04
281 查看
1. const指针和 指向const的指针
指向const的指针: 不允许通过指针来改变其指向的const值
const double *cptr
*cptr = 42; // error! 指针代表的值无法修改
const double pi =3.14
double *ptr = &pi //error ! 无法将指向const的指针赋值给非非const指针;
const double *cptr = &pi //ok
const 指针:本身值无法修改,即指针指向的地址无法修改
int num = 0;
int *const cur = &num ;// 错误
2.数组的引用做参数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun( unsigned char* const &a )
{
memset(a , 5,5 );
}
int main()
{
unsigned char a[5];
fun(a );
return 0;
}
3. 不能将指向const的指针的指针转换为指针
const char * 转 char*
指向const的指针: 不允许通过指针来改变其指向的const值
const double *cptr
*cptr = 42; // error! 指针代表的值无法修改
const double pi =3.14
double *ptr = &pi //error ! 无法将指向const的指针赋值给非非const指针;
const double *cptr = &pi //ok
const 指针:本身值无法修改,即指针指向的地址无法修改
int num = 0;
int *const cur = &num ;// 错误
2.数组的引用做参数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun( unsigned char* const &a )
{
memset(a , 5,5 );
}
int main()
{
unsigned char a[5];
fun(a );
return 0;
}
3. 不能将指向const的指针的指针转换为指针
const char * 转 char*
指向const的指针不能被赋给指向非const的指针,所以应该用strcpy,也就是另开一块内存,把字符一个个复制过去,示例如下: const char *expr = "goodidea"; char *buf = new char[strlen(expr)+1]; strcpy(buf, expr);
相关文章推荐
- C++之指向const对象的指针和const指针
- (转)const和指针(指向const对象的指针、const指针)
- const的理解、const指针、指向const的指针
- C++指向const对象的指针和const指针
- 函数指针、函数返回指针、const指针、指向const指针,指向const的const指针。
- 指向const对象的指针和const指针
- 指向const的指针和const指针的区别
- [指向const对象的指针] 和 [const指针]
- const指针与指向const对象的指针
- const指针和指向const对象的指针
- c++ const指针和指向const对象的指针
- C++中的指向const对象的指针、const指针、指向const对象的const指针
- 指向const的指针和const指针
- “指向const对象的指针” 和 “const指针”
- const指针和指向const对象的指针
- 如何区分“指向const对象的指针”和“const指针”?
- [转]指向const对象的指针和const指针
- const和非const之间的区别只适用于指针和引用指向的数据,也就是说fun(char)与fun(const char)将出现二义性错误
- 指向const的指针与const指针
- const指针与指向const对象的指针