在C/C++程序中,main函数可以传递了两个参数(int argc, char *argv[]), 后面那个是字符数组,当我们接收直接用字符数组接收参数时会报“表达式必须是可修改的左值”的错误,例如

#include <iostream>
#include <string>int main(int argc, char *argv[])
{char *argv0 = new char[64];char argv1[128];//argv1 = argv[1];//报错,表达式必须是可修改的左值 ,不可指定数组类型“char[128]”argv0 = argv[0];//用字符指针代替strcpy_s(argv1, argv[1]);//使用strcpy_s函数std::cout << "argc=====" << argc << "   argv0====" << argv0 << std::endl;std::cout << "argc=====" << argc << "   argv1====" << argv1 << std::endl;std::cout << "Hello World!\n";
}

原因是:数组名是常量,不可修改。数组名也是指向数组在内存中起始地址的指针。

因此不能直接赋值,

可以用字符指针代替,也可以用strcpy_s函数。(不能用strcpy,不安全,否则VS2019会报错)

字符数组赋值报“表达式必须是可修改的左值”的错误相关推荐

  1. C++对类(或者结构体)中字符数组赋值时,出现表达式必须是可修改的左值的问题

    最近自己遇到了这类问题,在csdn上找到了很多大神给的解答,非常到位 特别感谢这位: https://blog.csdn.net/JQ_AK47/article/details/53169799 问题 ...

  2. c++类指针赋值表达式必须是可修改的左值_C生万物,编程之本!(c语言基础笔记)

    c语言入门 C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全世界普及和推广.C语言不但执行效率高而且可移植性好,可以用来开发应用软件.驱动.操作系统等.C语言也是其它众多高级 ...

  3. c++类指针赋值表达式必须是可修改的左值_C++学习刷题8--复制构造函数和赋值运算符重载函数...

    一.前言 本部分为C++语言刷题系列中的第8节,主要讲解这几个知识点:复制构造函数和赋值运算符重载函数.欢迎大家提出意见.指出错误或提供更好的题目! 二.知识点讲解 知识点1:复制构造函数 1.当依据 ...

  4. c 表达式必须是可修改的左值_C++中的左值,右值,左值引用,右值引用

    童帅 2020-2-22 文中的"表达式"都是指赋值表达式 左值,右值,左值引用,右值引用 到底是什么 左值和右值 int a = 10; int b = 5; int c = a ...

  5. c++类指针赋值表达式必须是可修改的左值_C++进阶教程系列:全面理解C++中的类...

    原标题:C++进阶教程系列:全面理解C++中的类 关注Linux公社 最近刷了一些题,也面试了一些公司,把关于C++中关于类的一些概念总结了一下. 在这里也反思一下,面试前信心满满自以为什么都懂,毫无 ...

  6. 表达式必须是可修改的左值怎么解决_如何解决代码腐败的味道

    一. Duplicated Code(重复代码) 如果你在一个以上的地点看到相同的程序结构,设法将他们合而为一,程序会变得更好. 同一个类的两个函数含有相同的表达式,采用Extract Method( ...

  7. C++字符数组赋值问题(1)

    C++字符数组赋值问题(1) 错误源代码: char *arrA, *arrB; //对arrA赋值完成后,执行类似以下的复制操作时 //程序不报错,但赋值过程无法完成 *(arrB+j)=*(arr ...

  8. 如何给给字符数组赋值

    转载:https://blog.csdn.net/cherishinging/article/details/67634393 如何给给字符数组赋值 如何给一个一维数组赋值: 1.定义的时候直接赋值: ...

  9. c语言字符数组赋值超过,C语言字符数组赋值

    C语言字符数组赋值教程 C语言字符数组赋值详解 语法 arr[index] = value; 参数 参数 描述 arr 数组名. index 需要赋值的下标索引. value 需要设置的值. 说明 给 ...

最新文章

  1. C++:while(getline())函数
  2. nginx或httpd实现负载均衡tomcat(三)
  3. QIIME 2用户文档. 16鉴定和过滤嵌合体序列q2-vsearch(2018.11)
  4. 安装ORACLE 11.2.0.3 错误
  5. 在哪里可以运行EJB?
  6. 人本原理内涵_叶澜教育学原理课后答案资料配套题库考研真题精选课后习题章节题库...
  7. Java Nested Classes(内部类~第一篇英文技术文档翻译)
  8. HEXO+Github,搭建属于自己的博客
  9. Nginx源码分析 - 基础数据结构篇 - 内存池 ngx_palloc.c(02)
  10. Python实现微信机器人——itchat库
  11. 一元云购 java源码
  12. 基于xlsx-populate实现的前端埋点导出
  13. mac系统上运行c语言文件
  14. 移动网页布局基础:京东网页
  15. Jpeglib开发笔记(一):JpegLib库介绍、windows编译和Demo
  16. [SAP] PP模块 - BOM ( Bill of Material)
  17. Omorn - NJ301-1100 AND NX102-9000 - Socket - TCP 通讯
  18. Android之延时操作方法
  19. java 模拟登录微信_java 微信模拟登录错误,微信改版后不能使用
  20. Python datetime.datetime.isoweekday和date.weekday()

热门文章

  1. oracle 模糊查询去空格的编写
  2. war3联机对战原理以及T人挂原理简述
  3. 影响因子14.65:16S全长测序+低丰度简化菌群,提供根腐病防控新视角
  4. linux 创建目录命令_如何使用一个Linux命令创建多个子目录
  5. 【数学】C019_LC_三锥形的表面积(减重叠面积)
  6. java农场商城 生鲜超市 水果蔬菜电商网站平台系统设计与实现 项目源代码下载 javaweb jsp ssm mysql
  7. 微软 无线键盘 linux,Linux 5.13 将改善微软 Surface 键盘和触控板驱动
  8. 原神获取抽卡链接 powershell执行命令的命令( iex(irm ‘https://img.lelaer.com/gf.ps1‘) )有问题吗?
  9. cent os 7 mysql_cent os + MySQL Cluster 7.3.7 集群配置
  10. linux创建只读共享目录,mkdir: 无法创建目录kk: 只读文件系统