在c++中,当char * 指向字符常量时(以下面的程序为例)
1 |
|
编译时,将产生如下warning:
1 | ProblemC.cpp:4:12: warning: conversion from string literal to 'char *' is |
- 为什么会产生该warning呢?
因为此时a中存储的是“I love China!”在内存中的首地址,而“I love China!”是字符常量,存放在只读区中。程序员有可能通过a去修改“I love China!”的值,从而导致error。
- 如何解决该warning呢?
在定义a时,使用const修饰,表明a所指地址中的内容不允许被修改。示例如下:
1 |
|