c++字符串的问题( 四 )
输出结果:# of arrays instantiated = 0# of arrays instantiated 2Size of array integersl is 7Array after initialization: 0 0 0 0 0 0 0 0 Size of array integers2 is 10Array after initialization: 0 0 0 0 0 0 0 0 0 0 Input 17 integers: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 After input, the arrays contain: integersl: 1 2 3 4 5 6 7integers2: 8 9 10 11 12 13 14 15 16 17Evaluating:integers1 != integers2They are not equalSize of array integers3 is 7Array after initialization: 1 2 3 4 5 6 7Assigning integers2 to inteqersl:integersl: 8 9 10 11 12 13 14 15 16 17integers2: 8 9 10 11 12 13 14 15 16 17Evaluating: integersl == integers2They are equalintegersl is = 13Assigning 1000 to integerslintegersl: 8 9 10 11 12 1000 14 15 16 17Attempt to assign 1000 to integerslAssertion failed: 0 \u0026lt;= subscript \u0026amp;\u0026amp; subscript \u0026lt; size, file Arrayl.cpp, line 87abnormal program termination
■网友
不是说复制只能地址,而是strcpy这个函数的参数只接受指针,如果你自己写个复制函数接受std::string,那就能用可以不用传指针。而算写一个void strcpy(char a,char b)的函数,接受的还是指针:不管是传一个char a进去还是一个char *a= new char进去都一样。不过char a 和 char* a = new char并不等价,前者在栈上(除非写成static或者写成全局变量),后者在堆上(用完还得delete);而且前者编译时还额外有长度信息,在VC里有ARRAYSIZE这个宏,可以得到前者的长度。
■网友
函数要求参数的是char指针,而name是个char,当然不行了 c++的字符串就是个char数组,建议楼主好好研究一下c++数组的原理,理解之后豁然开朗如果不要求性能,建议直接用std::string,这个比较符合思维习惯,可以用=赋值
■网友
C++里的字符串是非常底层的,没有其他语言中常见的更高级的字符串功能,它的意思是让你自己封装更高级的功能,例如你想要的"=".或者使用别人封装好的string类.想着平时常见的字符串功能,用着char*,那是不现实的.
推荐阅读
- 江苏■江苏交控坚持问题导向、瞄准职工需求——找准“病灶”当好“产改先行官”
- 贵州在建骨干水源工程达到465座有效解决工程性区域性缺水问题
- 四川眉山瓦屋山景区就游客投诉、停车难等问题公开道歉
- 杭州已整改城市道路无障碍环境问题12467处
- 互联网怎样解决“家政服务上门速度慢”的问题
- 中东问题|
- 中国网汽车|购车2个多月、仅行驶8000多公里 宝骏730遭遇7处问题
- |沛县深入开展教育领域突出问题专项整改
- 交换机,路由器经常性的死机咋办
- 微博目前已经支持文本,图片,位置分享,为啥没有语音和视频呢微博的pm肯定想过这两种微博形态,但迟迟不做的原因到底是啥。是语音和视频不符合产
