const以及const指针相关问题
来源:互联网 发布:js jc jk jd 编辑:程序博客网 时间:2024/05/29 16:04
今天看到execl()库函数的兄弟函数execle()的相关介绍:
int execle(const char *path, const char *arg, ..., chart *const envp[]);
一下就被const char *和char *const搞懵了。记得前段时间看C++ Primer时印象还蛮深刻的,现在却又忘了。
知识啊,只有不断学习使用,才能转变为永久记忆,就像记住心爱mm一切的一切一样。
现在就来总结下与const有关的知识点,不断更新加入,谨为方便我和像我一样的菜鸟们记忆学习。
1、常量限定符
const限定符将一个对象转换为常量,转换后的对象属性将变为只读,并且要求初始化。在诸多面试中,会让写关于字符串处理的各种函数,其中一考察点,即在参数列表中源字符串需要用const来修饰,保护其在函数生命期间不被改写。
例如,在写strcpy()函数原型时,就有此类问题(支付宝笔试时就遇过这个问题,可惜那时我年少无知……),函数原型应该为下。
extern char *strcpy(char *dest, const char *src);
补:对于该函数,还会有问,既然目标字符串已经通过char *类型得到,为什么其函数返回值还需要为目标字符串的地址。
答曰,为了链式操作能够顺利进行,例如这样的操作可以方便完成strlen(strcpy(dest, src));
2、const char *与 char *const
const char *p;
p是一个指向char类型的const对象的指针,在此定义中,p本身不是常量,可以为p进行不同的赋值,但是不能修改p指向的对象。并且,p可以指向一个非const的对象,只不过在赋值后,被指向的对象不能再进行任何修改(同时,一个const对象,只能被p这种类型的指针所指)。
char a[] = "HelloWorld";
char *const *q = a;
q是指向一个非const对象的const指针,可以将其看作一个指向char类型对象的const指针。换句话说,即q在初始化之后,不能再赋值给其他地址值,但是q指向的值可以发生改变。
To be Continued.
- const以及const指针相关问题
- int const 与 const int区别 以及指针相关
- 关于const int以及相关指针用法
- const引用const指针以及constexpr
- 7.const指针问题
- 关于const常量、const指针以及const引用
- const 修饰指针的问题
- const与const指针
- const pointer(const指针)
- CONST 指针
- const指针
- CONST指针
- const 指针
- const指针
- const指针
- const指针
- const指针
- const 指针
- 直接插入排序算法
- 对于一个值8000的人,老板如何给工资才最好?
- SHFileOperation删除和拷贝文件(夹)
- CButtonST的BUG解决方法
- 自定义Shape
- const以及const指针相关问题
- 139邮箱短信报警实现
- LINUX core dump 详解
- 面试知识点回顾
- Memcached Java Client API详解
- android ViewStub
- 关于耐心
- linux操作系统下c语言编程入门
- 【linux】设备驱动动态中断申请