`
shuchaoo
  • 浏览: 41385 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

string的问题

阅读更多

string是一个无论哪个语言都有的问题

char * getstr1(){

        char s[] = "test";

        return s;

}

char * getstr2(){

       char *s = "test";

       return s;

}

这个问题考C语言里会经常碰到,getstr1中的s是堆栈上的变量,局部变量,不能返回;getstr2中的s是字符串常量,存储在静态存储区,所以可以返回。

再看一下就知道了。

#include <stdio.h>

int main(){
    char *s1 = "test";
    char *s2 = "test";
    printf("%d\n",(s1==s2));
    system("PAUSE");
}

 

再看看c++:

#include <string>
#include <iostream>
using namespace std;


int main(){
    char *s1 = "abc";
    char *s2 = "abc";
    string a = "abc";
    string *b = new string("abc");
    const string c = "abc";
    cout << boolalpha << (s1==s2) << endl;
    cout << boolalpha << (s1==a) << endl;
    cout << boolalpha << (s1==c) << endl;
    cout << boolalpha << (&a==b) << endl;
    cout << boolalpha << (&a==&c) << endl;
    system("PAUSE");
}

输出结果:

true

true

true

false

false

 

Java中的String是非常特殊的,可以参见:http://topic.csdn.net/t/20030331/09/1597184.html

对于String我深有体会,java大量使用String消耗内存太快了。

分享到:
评论

相关推荐

    十大常见Java String问题_动力节点Java学院整理

    下面将详细探讨Java String的十大常见问题及其解决方案。 1. **字符串比较:使用"=="还是equals()?** 在Java中,"=="运算符比较的是两个字符串对象的引用,即它们在内存中的位置,而equals()方法则比较的是两个...

    String对象创建问题

    在Java编程语言中,`String`对象的创建是开发者经常遇到的问题,因为它涉及到内存管理和效率。`String`类在Java中被广泛使用,因为它代表不可变的字符序列,这使得它在很多场景下非常安全。这里我们将深入探讨`...

    string中的常见问题

    ### String中的常见问题 在Java编程语言中,`String` 类型是最常用的数据类型之一,它代表了不可变的字符序列。本文将基于提供的代码片段深入探讨与 `String` 类型相关的几个关键概念,包括字符串常量池、字符串...

    HexString和Base64String的相互转换

    在IT行业中,数据编码是至关重要的,特别是在网络通信和存储中。`HexString`和`Base64String`是两种常见的二进制数据...掌握这个小程序的使用,不仅可以帮助处理日常开发中的数据编码问题,还能加深对数据编码的理解。

    String类创建对象问题

    ### String类创建对象问题 #### 一、String 类与常量池、字符串池的基本概念 在 Java 中,`String` 类并不属于八种基本数据类型之一,而是作为一个对象存在。这意味着 `String` 对象默认值为 `null`。尽管如此,`...

    Java String对象的经典问题

    ### Java String对象的经典问题 #### 一、String 类与对象机制概述 在Java中,`String`类是一个非常重要的类,它提供了丰富的功能用于处理文本数据。`String`类是不可变的(immutable),这意味着一旦一个`String`...

    String和string区别以及string详解

    在编程领域,尤其是在C#语言中,`String`和`string`经常被提及,它们都是用来表示文本数据的类型,但两者之间存在微妙的区别。...理解和熟练运用`string`类型,对于提升编程技能和解决实际问题至关重要。

    idea连接达梦数据库出现input string "8"问题,驱动已修复

    本文将深入探讨在IntelliJ IDEA (简称IDEA) 中连接达梦数据库时遇到的“input string \"8\"”问题,以及如何通过修复驱动程序来解决这个问题。 达梦数据库是一款国产的高性能关系型数据库管理系统,广泛应用于政府...

    list转换成string数组

    - **数组长度**:当使用`new String[list.size()]`创建数组时,确保列表中的元素数量与数组长度一致,避免出现数组越界的问题。 - **性能考虑**:在转换过程中,尽量减少不必要的对象创建,尤其是当列表很大时,这...

    String a="hello" String b="hello" a==b 返回true的问题分析

    String a="hello world"; //在java中有一个常量池,当创建String 类型的引用变量给它赋值时,java会到它的常量池中找"hello world"是不是在常量池中已存在。如果已经存在则返回这个常量池中的"hello world"的地址...

    c++string用法详解

    C++ 语言中的字符串处理一直以来都是一个棘手的问题,许多开发者都认为 C++ 的文本处理功能太麻烦,不方便使用。但是,随着 STL 的出现,C++ 的字符串处理功能得到了极大的简化。特别是 C++ 的 string 类,它提供了...

    java基础String类选择题练习题

    - **知识点**:通过实际案例演示如何运用`String`和`StringBuffer`解决具体问题。 - **例题**:题目可能会要求解决一个特定的问题,如“如何将两个字符串合并成一个,并确保结果字符串是可变的?” 综上所述,这份...

    C++实现string存取二进制数据的方法

    一些开发者可能更倾向于使用原始的字符数组或`std::vector&lt;char&gt;`,因为它们更直观且避免了string对象的潜在问题。然而,对于简单的场景,string仍然是一种可行的解决方案。 总的来说,当在C++中使用string类处理二...

    Arduino项目开发 Strings_StringSubstring_StringSubstring.pdf

    - **效率**:虽然`String`类方便了字符串操作,但过度使用可能导致内存问题,尤其是当处理大量数据或频繁创建新`String`对象时。因此,尽量减少不必要的复制和使用`substring()`。 在实际的Arduino项目中,`String`...

    字符串数组转换成string类型的

    此外,对于跨语言交互或底层系统编程,可能还会涉及到字符编码的问题,比如在C++中,如果你的字符串包含非ASCII字符,可能需要使用宽字符(如`wstring`)并考虑UTF-8编码。在Java和C#中,字符串默认是Unicode编码,...

    c++ string转换double

    ### C++ 中 string 转换为 double 的方法 在 C++ 编程语言中,字符串(`std::string`)与数值类型(如 `int`、`double`)之间的转换是常见的需求之一。这种转换通常用于处理用户输入的数据、解析配置文件或处理网络...

    Android byte[] 和 String互相转换

    综上所述,理解和熟练掌握`byte[]`与`String`之间的转换,是Android开发中的一项基础技能,能帮助开发者处理各种数据交换和存储问题。在实际应用中,根据具体需求选择合适的转换方法和字符编码,是确保数据正确性和...

    Android String字符串数组动态增加

    但需要注意的是,如果涉及到大量的数据操作,应考虑效率问题,可能需要使用更高效的数据结构或缓存策略。同时,对于从XML资源初始化的数组,动态增加后就无法再直接使用R.array.*引用,需要通过ArrayList来操作。

Global site tag (gtag.js) - Google Analytics