Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C++中的"char* string[]“是否等同于"char** string”?

C++中的"char* string[]“是否等同于"char** string”?
EN

Stack Overflow用户
提问于 2011-11-04 14:58:26
回答 3查看 1.9K关注 0票数 1

char* string[]是否等同于C++中的char** string?这两个声明到底有什么不同?在内存访问速度方面,最好的声明是什么?

谢谢,

EN

回答 3

Stack Overflow用户

发布于 2011-11-04 14:59:58

char * s[]是一个指针数组。char ** s是指向指针的指针。数组和指针不一样,所以两者是不同的。

(事实是,您通常可以将数组视为指向其第一个元素的指针,因此在这两种情况下都可以使用s[1][2]。)

请注意,char *s[]本身实际上并不有效。它要么是一个声明:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const char * s[] = { "hello", "world" };  // really `const char * s[2]`

或者它是一个函数参数,在这种情况下,它实际上与char**相同

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void foo(char * s[]); // same as `void foo(char ** s)`
票数 10
EN

Stack Overflow用户

发布于 2011-11-04 15:02:16

char* string[]可以衰减为char** string,例如,当通过值作为参数传递或通过值从函数返回时

这两者并不完全相同

票数 2
EN

Stack Overflow用户

发布于 2011-11-04 15:02:25

它们是不同的,然而,在大多数情况下,数组会衰减为指针(例如,当通过值作为参数传递给函数时)。因此,在这种情况下,完全可以在上面添加一个索引,然后就到此为止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8011232

复制
相关文章
char *string=”xxxxxxxxx” 与 char string[]=”xxxxx”的区别
这种方式使用的字面值模式,只读,不可以修改。string是个指针,这个字符串存放在程序的RODATA(read-only)段,不能修改的!
全栈程序员站长
2022/09/23
5990
C++ char*,const char*,string的相互转换
转自:http://blog.163.com/reviver@126/blog/static/1620854362012118115413701/
forrestlin
2022/04/02
1.2K0
char 、char[]、char*、 const char*、string(无效的const char *到XXXX的转化)
1、std::string 和QString在网络传输的过程中是不建议配套的,传过去,接到就成乱码了。 我因为这个愚蠢而把我们客户端人员坑惨了。
看、未来
2020/08/26
1.7K0
char 、char[]、char*、 const char*、string(无效的const char *到XXXX的转化)
string无法取代char*
涉及字符串,C开发人员使用char*,大部分C++开发人员会优先使用string,其实string也不是万能。接下来,我将介绍string无法取代char*的三个场景。
gaigai
2021/04/29
9170
char *转换为string的陷阱:char*中包含较多的'\0'
今天给团队调试一个错误,概率性的加密的数据没法做解密,现象是解密出来的结果和源数据长度不一致,很奇怪的现象,因为加密使用的数据是随机的,所以使得问题出现时表象是概率的问题;
呱牛笔记
2023/05/02
7020
char *转换为string的陷阱:char*中包含较多的'\0'
C++ String 与 char* 相互转换
1、将string转char*,可以使用string提供的c_str()或者data()函数。其中c_str()函数返回一个以'\0'结尾的字符数组,而data()仅返回字符串内容,而不含有结束符'\0'。
acoolgiser
2019/10/22
25.7K0
探究 C# 中的 char 、 string(一)
System.Char 的表示范围是 U+0000 到U+FFFF,char 默认值是 \0,即 U+0000。
痴者工良
2021/04/26
8000
C++学习——CString,char * ,string的相互转换
2、string转 CString CString.format(”%s”, string.c_str());
全栈程序员站长
2022/09/23
4.3K0
java中string转换为int(int char)
// String change int public static void main(String[] args) { String str = “123”; int n; // first method // n = Integer.parseInt(str); n = 0; n = Integer.parseInt(str); System.out.println(“Integer.parseInt(str):”+ n); System.out.println(“\n”); //second method //n = Integer.valueOf(str).intValue();
全栈程序员站长
2022/07/28
1.9K0
java中string转换为int(int char)
C#中char[]与string之间的转换;byte[]与string之间的转化
(1)C#中char[]与string互相转换的写法: string 转换成 Char[] string ss="abcdefg"; char[] cc=ss.ToCharArray(); Char[] 转换成string string s=new string(cc); -------------------------------------------------- (2) C#中byte[]与string互相转换的写法:   byte[] 转换成string byte[] bb=Encoding.U
跟着阿笨一起玩NET
2018/09/18
1.6K0
遍历string时 使用for(char& c : s) for(char c : s) 的区别
结果是第一种方法比第二种方法快得多。虽然原因很简单,只是一个很基本的道理,但是毕竟初学,还是写下来记录一下。
狼啸风云
2020/09/07
1.7K0
如何把std::string当char *使用?
std::string使用很方便,但有时会碰到这样的问题,比如我们有一个结构体,内容如下所示:
王亚昌
2018/08/03
6970
string 如何转化成 char 指针类型
std::string 如何转化成 const char * 或者 char * 类型?
ClearSeve
2022/02/11
1.4K0
char转换成string java_int类型转换成char类型
原文地址:http://www.only-demo.com/java/20190220/277.html
全栈程序员站长
2022/11/09
8550
python 数组转换为字典_char转换为string
会触发TypeError: sequence item 0: expected string, int found的错误
全栈程序员站长
2022/11/07
1.1K0
深入理解C++11_c++ string char
decltype(declare type)用于查询表达式的类型,即编译时期进行自动类型推导。如上所示,该语句返回expression表达式的类型。
全栈程序员站长
2022/09/30
2790
Java 9 为何要将String的底层实现由char[]改成了byte[]?
如果你不是 Java8 的钉子户,你应该早就发现了:String 类的源码已经由 char[] 优化为了 byte[] 来存储字符串内容,为什么要这样做呢? 开门见山地说,从 char[] 到 byte[],最主要的目的是为了节省字符串占用的内存 。内存占用减少带来的另外一个好处,就是 GC 次数也会减少。 为什么要优化 String 节省内存空间 我们使用 jmap -histo:live pid | head -n 10 命令就可以查看到堆内对象示例的统计信息、查看 ClassLoader 的信息以及
程序猿DD
2022/04/19
1.1K0
Java 9 为何要将String的底层实现由char[]改成了byte[]?
『C++』字符串后面空字符的问题(char*与string的转换)
此时输出结果应为mynameis,然而输出结果为mynameis口(空字符标志打不出来); 所以用字符数组给string赋值时要用assign()
风骨散人Chiam
2020/10/28
9930
深入 char * ,char ** ,char a[ ] ,char *a[] 内核
http://blog.csdn.net/daiyutage/article/details/8604720
bear_fish
2018/09/20
2.9K0
深入 char * ,char ** ,char a[ ] ,char *a[] 内核
JDK9为何要将String的底层实现由char[]改成了byte[]?
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 如果你不是 Java8 的钉子户,你应该早就发现了:String 类的源码已经由 char[] 优化为了 byte[] 来存储字符串内容,为什么要这样做呢? 开门见山地说,从 char[] 到 byte[],最主要的目的是为了节省字符串占用的内存 。内存占用减少带来的另外一个好处,就是 GC 次数也会减少。 一、为什么要优化 String 节省内存空间 我们使用 jmap -histo:live pid | head -n 10 命令就
猿天地
2022/04/22
2450
JDK9为何要将String的底层实现由char[]改成了byte[]?

相似问题

C++ char** -> vector<string> -> string -> char**解析问题

14

char string* vs char string[]

20

char buf[] = "test“是否等同于String buf = new String("test")?

50

C++中的‘string()+char

10

String.Replace(char,char)还是Replace(string,string)?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文