c语言const修饰符问题
来源:互联网 发布:淘宝降价活动 编辑:程序博客网 时间:2024/06/06 02:32
foo(const char **p){};
main(int argc, char ** argv)
{
foo(argv);
}
warning: argument is incompatible with prototype
ANSIC:6.3.2.2
每个实参应该有自己的类型,这样它的值可以赋值给与它对应的形参类型的对象
ANSIC:6.3.16.1
两个操作数都是指向有限定符或无限定符的相容类型的指针,左边指针所指向的类型必须具有右边指针所指向类型的全部限定符
char *与const char *匹配
char * p;
const char *ccp;
ccp = cp;
原因:
1.左操作符(ccp)是一个指向有const限定符的char类型的指针,const限定符修饰的char类型(指针指向的类型)而不是修饰指针的。
2.右操作符(cp )是一个指向没有限定符的char类型的指针
3.char类型与char类型是相容的,左操作符所指向的类型具有右操作符所指向类型的限定符,再加上自身的限定符(const)
char ** 与const char **不匹配
char ** p;
const char **ccp;
ccp = cp;
原因:
1.ccp是一个指向有const限定符char类型的指针的指针;
2.cp是一个指向无限定符char类型的指针的指针;
3.cp和cpp指向的类型不相同。
关键字const不能把变量变为常量,在一个符号前加上const限定符只是表示符号不能被赋值,就是它的值对于这个符号是只读的,但它并不能防止通过程序的内部的方法来修改这个值。
const最常用之处就是用它限定函数的形参,这样函数将不会修改实参指针所指的数据。
- c语言const修饰符问题
- C语言const修饰符探秘
- C语言之const修饰符
- 黑马程序员-------C语言----const修饰符
- C语言之const修饰符
- C语言const的修饰
- C修饰符const
- C语言的那些小秘密之const修饰符
- const修饰符在c语言编程中的注意事项
- C语言的那些小秘密之const修饰符
- C语言的那些小秘密之const修饰符
- C语言的那些小秘密之【const修饰符】
- C语言的那些小秘密之const修饰符
- 【C语言】函数参数中的const修饰符
- C语言类型限定修饰符(十八)const、(*)、
- c语言的指针、数组和常量修饰符const
- c语言中去除const修饰
- C语言--const修饰指针解析
- linux 常用命令
- 软件选型只是向标杆企业学习的第一步
- linux 下bochs安装和问题
- C++经典书籍汇总
- Linux下使用Shell脚本改变当前工作路径
- c语言const修饰符问题
- 排列算法
- 过滤器、监听器、拦截器的区别
- 获取根域名
- oracle11gr2 netca 无法启动 报错 默认主机名导致
- 《ARM学习手札》----汇编伪代码
- 冒险岛教程一:修改封包加解密(AES_OFB)
- list all files of a pc
- 《ARM学习手札》----B、BL、BX、BLX 和 BXJ