一个堆栈程序,怎么能不用字符串类型

发布于 科技 2024-08-03
14个回答
  1. 匿名用户2024-01-31

    开始堆垛。

    void ling inter(ls* fq):此 fq 用作头指针。

    ls* ff=new ls;

    cin>>ff->name1>>ff->number1>>ff->address1;

    进入堆栈。 ff->next=fq->next;fq 的下一个表示下一个元素(而不是指针)向上。

    fq->next=ff;

    delete ff;添加这句话。

    ff=0;添加这句话。

    如果使用 new,则需要在生存期结束时删除,否则将使用空指针。

    P.S. *什么是空指针:指针指向的存储区域的生存期和结束,但指针的生存期尚未结束,导致。

    存储中的数据已释放,指针指向的区域是随机值。 那么这个指针称为空悬挂指针。

    空悬挂指针有两种常见情况:

    1.该函数返回一个自动局部变量的地址,这在我以前经常发生。

    2.删除动态分配的对象后,指针不会指向 0,而指针实际上是指向 1 的。

    随机值。 作为 2 的注释,请注意,在动态分配时,指针的生存期和指针指向的区域的生存期是两个不同的概念。

    指针的生存期从程序开始运行时开始,到程序运行完毕时结束,指针本身的存储间隔在编译时。

    确定,指针是指从 new 到 delete 结束的动态分配间隔的生存期,因此如果调用 delete。

    如果不将指针指向 0,则会出现一个空指针,很容易出错。

    解决空挂指针的方法:1在情况 1 中,该函数返回一个静态局部变量。

    2.在案例 2 中,在调用 delete 后,将指针指向 empty。

    最后,要求启动堆栈。

    void ling_out(ls* fq)

    ls* ff=new ls;

    ff=fq->next;

    coutnext;

    delete ff;

    ff=0;添加这句话。

    您知道如何在此处使用 delete 来使用它。

  2. 匿名用户2024-01-30

    str 是字符串类型,即引用类型。 它位于堆栈上,但它不是基本数据类型。 当 string str = new string(); 在这种情况下,JVM 为堆栈上的 str 表示的存储单元分配 4 个字节(32 位)的空间,用于存储堆空间的地址。

  3. 匿名用户2024-01-29

    由于这些操作,string 直接在内存中创建许多副本。

    更改原始变量的值时,string 会创建另一个副本。

    与 stringbuffer 相比,这是内存密集型的。

  4. 匿名用户2024-01-28

    字符串和字符串是两个不同的概念,所以不要混淆它们。 前者是值类型,后者是引用类型。

  5. 匿名用户2024-01-27

    堆栈:保存原始类型的数据和对对象的引用,但对象本身并不存储在堆栈中,而是存储在堆中。

    堆:存储 new 生成的数据。

    string a=new string("abc");创建 2 个对象。

    string b="abc";创建对象。

    abc"在内存中字符串池中,并且您的新字符串 ("abc") 是一个对象,不存储在字符串池中。

    所以在堆栈中。

  6. 匿名用户2024-01-26

    string str = abc";

    它在堆内存的字符串常量池中创建一个字符串对象,str 保存字符串对象的内存地址。

    string str1 = abc";

    JVM 将查看堆内存以查看它是否存在"abc"字符串常量,如果存在,则将字符串常量对应的对象地址分配给变量 str1,否则将创建一个新的字符串对象。 明显地"abc"存在一个字符串常量,因此对象的内存地址被分配给变量 str1

    getstr() str1

    getstr() 返回 String 对象的地址,str1 也是同一个对象的地址,== 比较结果为 true,返回 true

  7. 匿名用户2024-01-25

    在堆栈中。 如果使用 string str = new string(),则它位于堆内存中。

  8. 匿名用户2024-01-24

    str 是放置在堆栈中的局部变量。

  9. 匿名用户2024-01-23

    string 和 char* 是两种完全不同的类型。

    string 是一个类,char 是基类型。

    String 具有构造函数 String(Const Char*)。 因此,char* 可以隐式转换为字符串。

    如果要将字符串转换为 char*,可以使用方法。

    filename);

    参数的类型为 char*,filename 为 string,不能隐式转换为 char*。

    你可以像这样修改它:(;

  10. 匿名用户2024-01-22

    还行。 但是,有必要使用成员函数 c str() 对其进行转换;

  11. 匿名用户2024-01-21

    字符串作为字符一个接一个地压入堆栈中,然后它们一个接一个地从堆栈中取出。

    这很简单。

  12. 匿名用户2024-01-20

    将字符串拆分为多个字符并将其放入其中。

  13. 匿名用户2024-01-19

    你好! 首先,应该声明你对这个程序的编译不应该通过,因为“string x = 10; 这句话在语法上是错误的,因为 10 是一个 int 类型,如果你用字符串类型声明(定义),你肯定会说该类型在编译时不兼容。 在声明(定义)字符串类型时,可以像这样声明“string x =”"10";“就是这样。

    让我们来谈谈对内存的分析,对于原始类型在声明(定义)时,例如:int x = 10; 这直接存在于堆栈内部块中; 对于引用类型声明(定义),例如字符串 str ="10";在这种情况下,将在堆栈内部的空间中划分一个部分来存储变量 str,其值是堆中的内存地址“10”。

    你只需要知道局部变量存储在堆栈的内部空间中,而新出现的所有变量都存储在堆的内部空间中。

  14. 匿名用户2024-01-18

    首先,你编写了一个有很多错误的程序。

    string x ="10";

    string y =new string("20");;

    其次,我的跑步结果是:

    这不像你在说。

相关回答
10个回答2024-08-03

您的 ** 错误是:

没有为 s 分配空间,只需操作 s->base 初始化即可将其更改为以下方式: >>>More

14个回答2024-08-03

多元输入法(多汉字和图形符号输入法)是调用国际标准通用码版大字符集字体的最佳输入法。 其代码长模型很短,输入中文冰雹凝字1 3码,图形符号1 4码,词汇4码; 2013年8月19日,8105个通用标准汉字不仅可以打字,还可以在第一屏显示; 平均每天每个单词的打字量不到 2 码。 它可以输入所有汉字(超过10,000个),完全解决了无法输入所有汉字的问题。 >>>More

11个回答2024-08-03

它坏了,设置没用。

13个回答2024-08-03

我给你6种调试方法!

2.如果电脑有木马或病毒干扰,**“360安防卫士”和“360杀毒双引擎版”,建议对病毒和木马进行“扫描”,修补电脑上的漏洞! >>>More

8个回答2024-08-03

电脑蓝屏,主要是:“内存错误”或“软件不兼容”导致,解决方法: >>>More