`

字符串数组解惑

 
阅读更多

在整型和字符串类型的读取地址的过程中,代码如下所示:

 

int a[2][3] = {{1,2,3}, {4,5,6}};
cout << a << endl;
cout << a[1] << endl;
cout << &a[1][1] << endl;
cout << endl;

char b[3][3] = {{'A','A','A'}, {'B','B','B'}, {'C','C','\0'}};
cout << b << endl;
cout << &b[1] << endl;
cout << &b[1][1] << endl;

char *c = &b[1][1];
cout << c << endl;

 

 

运行结果如下:


 

在整型中,cout << &a[1][1] << endl;  输出时为该元素所在地址。

而在字符型中,cout << &b[1][1] << endl; 输出时 将其当做char* 类型,输出b[1][1]以之后的字符串,并且由于二维数组在内存中的分配是连续的,故输出BBCC ('\0')。

 

 

 

 

 

  • 大小: 5.1 KB
分享到:
评论

相关推荐

    JAVA面试题解惑系列(六)——字符串(String)杂谈[收集].pdf

    总的来说,理解和掌握`String`类的`length()`方法、字符数组与字符串的区别以及Unicode编码在Java中的应用,是Java程序员必备的基础技能,也是面试中常见的问题。对于处理中文字符,需要特别注意字符编码的细节,以...

    C指针快速解惑(三)

    除了数值类型,指针还可以用于处理字符串数组。例如,给定内容中有一个字符串数组`name`: ```c static char *name[] = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; ``` ...

    C语言编程技术实践 一维数组翻转课堂教学设计.docx

    在本篇《C语言编程技术实践 一维数组翻转课堂教学设计》中,主要涵盖了C语言中关于一维数组和字符串处理的知识点。一维数组是C语言的基础数据结构之一,而字符串处理则是C语言中处理文本数据的重要手段。以下是详细...

    java 解惑.pdf

    - **解惑**:字符串输出时,需要关注控制台或输出流的具体实现细节。不同的环境可能会有不同的输出格式和限制。 以上仅列举了部分谜题,每个谜题都深入探讨了Java编程中的陷阱和缺陷,并提供了详尽的解决方案。通过...

    讲解Java解惑的PPT2

    当尝试将`char`数组直接与字符串连接时,需要使用`String.valueOf()`方法将`char`数组转换为字符串,否则会得到意外的结果。例如,`System.out.println(letters + " easy as " + String.valueOf(numbers))`将正确地...

    java解惑(源代码+教程)

    3. **字符串操作**:Java中的字符串是不可变的,这意味着任何对字符串的操作都会创建新的对象。理解这一点对于优化代码和避免内存浪费至关重要。 4. **数组与集合**:Java提供了多种数据结构,如数组、ArrayList和...

    C指针快速解惑之一二三

    `定义了一个字符数组`c2`,并初始化为字符串"World",但需要注意,字符串在内存中会自动添加一个结束符`\0`,所以`c2`实际长度为6。 3. **指针的加减法运算**: - 对于指向数组的指针,如`int *p`,我们可以进行`p...

    Java_解惑(PDF)

    5. **字符串操作**:String类在Java中非常常用,其不可变性可能困扰初学者。文档可能会涵盖字符串的创建、连接、查找、替换等操作。 6. **IO流**:输入/输出流是处理数据输入和输出的关键,包括文件读写和网络通信...

    EXCEL函数公式解惑专集

    9. **文本函数**:LEFT、RIGHT、MID用于提取文本字符串的一部分,CONCATENATE或 CONCAT用于连接多个文本字符串,FIND和SEARCH则用于查找子串位置。 10. **错误处理**:ISERROR和IFERROR函数可帮助检测并处理公式中...

    C指针快速解惑(一)

    需要注意的是,字符串常量实际上是以'\0'结尾的字符数组,所以在定义`c2`时为其分配了6个字符的空间(包括结束符'\0')。这意味着尽管`c1`和`c2`看起来相似,但它们的数据类型和存储方式是不同的:`c1`指向一个不可...

    Java面试题解惑系列

    **结论**:通过直接赋值创建的字符串对象会放入字符串常量池中,而通过 `new` 关键字创建的字符串对象则不会放入字符串常量池中,而是作为新的对象创建。 --- #### 3. 变量(属性)的覆盖 **知识点概述**:在面向...

    java解惑很全的题目

    Java的`Character`类提供了许多处理单个字符的方法,`String`类则提供了丰富的字符串操作函数。 这些谜题覆盖了Java编程的多个方面,通过解答这些问题,学习者可以加深对Java语言特性的理解,提高编程能力。

    JAVA解惑

    7. **字符串处理**:讲解String类的特性,以及常用的字符串操作方法。 8. **集合框架**:深入理解ArrayList、LinkedList、HashSet、HashMap等集合类的用法和底层实现原理。 9. **IO流**:介绍输入输出流的概念,...

    java解惑(java谜题)中文版的

    5. **字符串操作**:String在Java中是不可变的,对字符串的频繁操作可能导致不必要的内存消耗。 6. **数组与集合**:理解数组和集合(如ArrayList、LinkedList)之间的性能差异,以及何时使用它们,是避免谜题的...

    Java面试题及解惑

    - **字符串反转**:可以通过循环遍历字符串并反向拼接来实现。 - **字符串替换**:可以使用`replace`或`replaceAll`方法进行替换。 #### 3. 数据类型之间的转换 - **数值型字符转换为数字**:可以使用`Integer....

    c语言坑爹大冒险.rar

    4. **数组与字符串**:C语言中的字符串是字符数组的特例,不理解这一点可能导致字符串操作出错。同时,数组下标越界是另一个常见的坑。 5. **预处理器宏**:预处理器宏在C语言中广泛使用,但如果不小心,宏的副作用...

    水滴石穿C语言 C语言面试宝典 C语言答疑解惑

    理解指针的概念、操作和用途,如动态内存分配、字符串处理和数组操作,能提升编程效率。 7. **结构体与联合体**:结构体允许我们将多个不同类型的变量组合在一起,而联合体则在有限的内存空间中存储多种类型的数据...

    C编程技术CSDN网络资源包.rar

    6. **数组与字符串**:数组是同类型元素的集合,字符串是特殊的字符数组。理解数组的声明、初始化和操作是必要的。 7. **结构体与联合体**:结构体允许将不同类型的变量组合在一起,联合体则是在同一内存空间中存储...

    JS解惑之Object中的key是有序的么

    例如,当对象的键是整数或整数类型的字符串时,for/in循环遍历的顺序会按照从小到大的顺序排列。这是因为JavaScript引擎会按照数值大小对整数键进行排序。 如果对象中包含了混合类型的键,整数类型的键会排在非整数...

Global site tag (gtag.js) - Google Analytics