char型指针和字符串字面量和字符数组
1、当一个char型指针指向一个字符串字面量(也就是常量字符串)时,该指针必须由const修饰,否则,系统会给出deprecated(不赞成)的警告。原因是:字符串字面量不可改变,当它被一个非const修饰的指针指向时,存在被指针改变的风险。
2、char型指针指向一个字符数组时,没有const限制,因为字符数组可以被改变。但是,如果我们不需要指针来改变字符数组时,我们最好加上const修饰,来限制指针的行为,减少出错的概率。
3、例子:
#include <cstdio>
int main(){
char *p;
p="where";
puts(p);
return ;
}
编译后:t3.cpp: In function ‘int main(int, char**)’:
t3.cpp::: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
p="where";
^
#include <cstdio>
int main(int argc, char *argv[])
{
const char *p;
char c[]="where are you";
p=c;
puts(p); return ;
}
//该程序换为数组,则没有任何问题
char型指针和字符串字面量和字符数组的更多相关文章
- C内存对齐问题-bus error!总线错误!其实是 字符串字面量修改问题!
最近写个小程序,出现bus error! int main(void) { /** * char :1个字节 * char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也 ...
- ISO/IEC 9899:2011 条款6.4.5——字符串字面量
6.4.5 字符串字面量 语法 1.string-literal: encoding-prefixopt " s-char-sequenceopt " encoding- ...
- char型指针与其它指针或数组的细节
一道常见题 char * str7="abc"; char * str8="abc"; cout<<(str7==str8)<<endl ...
- QT_NO_CAST_FROM_ASCII这个宏的,禁用一切来自双引号字符串字面量传入QString(有2种解决方法)
这两天制作了两个Qt Creator增强套装的两个插件,其实也是非常简单的,但是其实花了我超过四天的时间,为什么呢?因为我之前很长一段时间都是在Linux下开发的,一切安好,没有任何问题,但是到了Wi ...
- 【译】Java中的字符串字面量
原文地址:https://javaranch.com/journal/200409/ScjpTipLine-StringsLiterally.html 作者:Corey McGlone 让我们由一个简 ...
- js 正则学习小记之匹配字符串字面量优化篇
昨天在<js 正则学习小记之匹配字符串字面量>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯后用 [^"] 才能匹配成功 ...
- c#字符串字面量
分为两种: 1 常规字符串字面量 2逐字字面量字符串:以@字符为前缀.注意:注意逐字字面量唯一例外的是相邻的双引号组,它们被解释为单个双引号字符.
- Typescript 字符串字面量类型
字符串字面类型定义的类型是固定的,在其使用时必须是其定义的其中一个字符串,否则会报错 当传入一个定义之外的字符串时,会报错字符串字面量类型.ts(13,20): error TS2345: Argum ...
- JavaScript对象的理解 及 字面量对象与数组的关系
JavaScript的简单类型包括 数字.字符串.布尔值.null值.undefined值. 其他的值都是对象.对象是可变的键控集合.数组.函数.正则表达式都是对象. 对象是属性的容器,属性都是名字和 ...
随机推荐
- 取自ACE中的bit操作宏(转)
# define ACE_BIT_ENABLED(WORD, BIT) (((WORD) & (BIT)) != ) # define ACE_BIT_DISABLED(WORD, BIT) ...
- 神经网络:caffe特征可视化的代码例子
caffe特征可视化的代码例子 不少读者看了我前面两篇文章 总结一下用caffe跑图片数据的研究流程 deep learning实践经验总结2--准确率再次提升,到达0.8.再来总结一下 之后.想知道 ...
- 【Linux】Ubuntu13.10 设置静态ip地址
vim /etc/network/interfaces # interfaces() ) and ifdown() auto eth0 iface eth0 inet static address 2 ...
- 【DB2】监控动态SQL语句
一.db2监控动态SQL(快照监控) db2示例用户登陆后,使用脚本语句db2 get snapshot for all on dbname>snap.out 也可以使用db2 get snap ...
- C#实现发布订阅模式
首先给出项目的结构 IPublish.cs的源码: namespace NsWebChat.PublishSubscribe { /// <summary> /// 发布事件基础接口 // ...
- V-rep学习笔记:视觉传感器1
Vision sensors, which can detect renderable entities(Renderable objects are objects that can be seen ...
- excel如何快速更改表格边框的颜色
1.当完成基本的表格设置之后,对颜色不甚满意,怎么办 2.重新给表格选择一种颜色,这里会出现一个“笔”形状的鼠标箭头,不用理睬她 3.再次给表格统一加边框即可(开始--边框--所有框线)
- Android百度地图相关内容汇总
Android百度地图知识讲解 1.百度地图开发环境搭建 http://www.apkbus.com/android-116050-1-1.html 2.Android百度地图系列教程 h ...
- Java6 WebService的发布(转)
Java6 WebService的发布 转:http://lavasoft.blog.51cto.com/62575/227988/ WebService服务发布往往比较混乱,Axis2的 ...
- sikuli 如何 清空文本框中的内容??解决方法!
Screen s = new Screen(); s.click("name.png"); s.type("a",KeyModifier.CTRL); s.ty ...