首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言基础有关问题

2012-03-09 
C语言基础问题,高手进C/C++ codeconst char ** pchar ** ppp pp如果是这样 编译器就会发一条警告而下

C语言基础问题,高手进

C/C++ code
const char ** p;char ** pp;p = pp;

如果是这样 编译器就会发一条警告 
而下面的就不会

C/C++ code
char *cp;const char *ccp;cpp = cp;

这个为什么可以呢?
按理说cp 指向的是 一个char类型
而ccp指向的是const char 类型
两个类型不应该相容啊
这也是为什么第一段代码 会报警告
我不明白为什么第二段代码可以无警报编译

编译器 是gcc



[解决办法]
const char*是一个不能被修改的指针,因此从普通指针转过来是没问题的
而char*是普通指针,是可以修改的,如果你用char*修改了值,实际上相当于修改了const char*的值,因此变的不安全,所以系统会给警告
[解决办法]
只规定可以从 
T* 转换成 const T*


但是下面:
const char ** p; //T1 = char char *
char ** pp; //T2 = char*
p = pp;
T1 != T2时,没有 T2 * 到 T1*的转换.


[解决办法]
探讨
C/C++ code

const char ** p;
char ** pp;
p = pp;


[解决办法]
C专家编程19页……
[解决办法]
比较比较 const char *p 与 char *const p 就知道了!

热点排行