首页 > 其他分享 >变量或常量修改

变量或常量修改

时间:2024-08-30 19:21:33浏览次数:13  
标签:Java 字面 string 修改 字符串 变量 常量

有些变量其实可能是常量,修改将产生一些不预期的结果。

字符串修改

  • C语言字符串char *变量本质是指针, 如果是字面量初始化,存放位置可能位于只读区,修改内容将产生崩溃。
    • char s[] = “hello”与char *s = “hello”截然不同,前者一定可修改,而后者不一定。反汇编这两段代码,能看到区别在于后者会直接取指针赋值,前者会有拷贝或初始化动作。
    • 编译器如果把字符串字面量放在.rodata区,程序运行后对应内存页面就是只读的,写此区域将发生内存异常。
    • C修改字符串字面量的行为是未定义的。
    • 另外上面数组s是常量,不能再被赋值。
  • C++标准明确指出字符串字面量是const类型。C++修改字符串字面量的行为一定会出错。
    • 对于string str = “abcd”赋值的变量允许修改,str构造时有申请空间保存”abcd”.
  • Java string是常量,StringBuilder和StringBuffer是可修改的,StringBuffer是线程安全,访问起来可能更慢。
  • C# string和Java一样是常量,StringBuilder是可修改的。
  • Java和C#把string默认当常量,其实是为了优化,常量可以提前优化在某个地址,这和C/C++字符串char *字面量可能被优化是类似的。
  • C++ string不像C#和Java那样,它默认可修改。


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

标签:Java,字面,string,修改,字符串,变量,常量
From: https://blog.csdn.net/cxsjabcabc/article/details/141725494

相关文章

  • Linux之shell脚本变量
    变量是脚本种的一种重要的属性,它可以存储值,这就大大的增加了脚本的灵活性使得脚本的应用更为广泛。自定义变量变量名=值(等号两边不能有空格)在linux内可以定义变量然后用$引用如果要在调用后面加字符之类的则可以使用${变量名}字符环境变量系统帮你定义好的变量例如US......
  • 修改 Linux 默认 Shell 用 chsh -s /bin/zsh 命令不生效,提示 chsh: Shell not changed
    我想现在应该有很多人都已经使用zsh作为默认的Shell了,尤其是搭配oh-my-zsh之后,真是好用得飞起。一般,我们在切换系统默认的Shell的时候,都会使用 chsh-s/bin/zsh 命令来进行修改。今天我遇到一个问题,在某台老服务器上,使用这个命令无法修改,具体原因未知。始终提示——chsh:She......
  • Makefile编写2--使用变量,函数
    一、使用变量1、变量值的替换其格式是“$(var:a=b)”或是“${var:a=b}”,其意思是,把变量“var”中所有以“a”字串“结尾的“a”替换成“b”字串。2、把变量的值再当成变量x=yy=za:=$($(x))3、override指示符如果有变量是通常make的命令行参数设置的,那么......
  • 【QA-MISRA】在客户端如何修改当前用户的密码
    【更多软件使用问题请点击亿道电子官方网站】无法登录QAMISRAController的情况下如何修改当前用户的密码问题1、文档目标解决无法登录QAMISRAController的情况下如何修改当前用户的密码问题。2、问题场景由于客户实行集中式管理,QA-MISRAController开发人员无权登录......
  • 29:函数查询,添加,修改,删除
    #_*_coding:utf-8_*_importosdeffile_handle(filename,backend_data,record_list=None,type='fetch'):#type:fetchappendchangenew_file=filename+'_new'bak_file=filename+'_bak'iftype=='fetch':......
  • 干货 | NXP NCF3321 卡保护应用阈值修改讲解
    1.前言    NCF3321是世平集团代理的NXP所研发的新一代车规级NFC前端IC,相比上代NFC前端IC性能提升巨大、支持多类型多协议卡检测、支持手机模拟NFC识别、支持手机与卡共同检测、宽范围工作温度工作更加稳定。    NCF3321是一款高度集成的高性能......
  • 类的成员静态变量和静态成员函数需要类外定义吗,举例说明
    类的成员静态变量需要在类外定义(非声明),而静态成员函数则不需要在类外额外定义。 静态变量类外定义示例 假设有一个类MyClass,它有一个静态成员变量staticVar: cppclassMyClass{public:  staticintstaticVar;//静态成员变量声明  staticvoidstaticFu......
  • 博客园-awescnb插件-geek皮肤优化--浏览器ico图标修改
    简介通过js方式自定义修改博客园-awescnb插件-geek皮肤下浏览器ico图标图标准备准备自定义的图标,上传至博客园个人的相册中代码注入定义自定义HTML:博客园->管理->设置->页脚HTML代码添加相关代码//更换ico图标functionupdateICO(){varlink=docum......
  • 5 Python的变量、关键字、命名规则、基本数据类型及类型转换
    本文是Python系列教程第5篇,完整系列请查看Python专栏。1定义变量在Python中定义变量非常简单,你只需要给变量赋值即可。Python会自动检测变量的数据类型。下面是一些基本的例子来展示如何定义不同类型的变量:1.1整数age=251.2浮点数height=1.751.3字......
  • nginx第三方模块echo和变量
    第三方模块:echo第三模块是对nginx的功能扩展,第三方模块需要在编译安装nginx的时候使用参数--add-module=PATH指定路径添加,有的模块是由公司的开发人员针对业务需求定制开发的,有的模块是开源爱好者开发好之后上传到github进行开源的模块,nginx支持第三方模块,需要重新编译源码......