c++编程问题,string类型怎么赋值,怎么引用 要想使用标准C++中string类,必须要包含include<;string>;/注意是,不是,带.h的是C语言中的头文件C++中,string是一个类(注意,不是类型)。它的赋值,直接将字符串等于给它,或将同类的变量赋给它即可。比如:string LSStr,LSStrA;定义LSStr='aabbccdd';赋值LSStrA=LSStr;同类赋值1、不同编译环境下的C++,对字符串的处理稍有差别。2、最原始的C语言中,没有string,在C++里才有了string这个类。3、注意,string是一个类,不是类型。类这个概念是C++才特有的,它的存在是为了模块化编程。类是一个相对复杂的东西,它就象一个单元,包含了自已内部的数据定义、函数等等。二、值得注意的是,早期的C中,对字符串的处理是用字符数组来进行的,比如:char s[30];strcpy(s,\"Good News。给数组赋字符串*/.或是,让编译器在定义时,自动的处理(实际上还是做了上面的两步):char s[30]=\"Good News。三、对于字符串的处理,C++中其实是一个相对不好理解的东西,因为这涉及到了C/C++语言的指针,也就是说,无论是什么方式,它的最根本的本质是用一个指针指向了存放字符串的地址。string这个“类”除了指针外,还扩展了常用的一些处理函数在里面,比如字符串截取。
java里String类型可以直接赋值,保存的是值还是引用的地址? 先给你一个2113在博客园看到的说明问题1我声明了什么!5261String s=\"Hello world。许多人都做4102过这样的事情,但是,我们到底声明1653了什么?回答通常是:一个String,内容是“Hello world。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向\"Hello world。这个String类型的对象。这就是真正发生的事情。我们并没有声明一个String对象,我们只是声明了一个只能指向String对象的引用变量。所以,如果在刚才那句语句后面,如果再运行一句:String string=s;我们是声明了另外一个只能指向String对象的引用,名为string,并没有第二个对象产生,string还是指向原来那个对象,也就是,和s指向同一个对象。我的理解:字符串的底层真实实现,还是和C一样,用的数组来存储多个char类型的字符,所以可以理解成声明一个数组,因为数组是多个内存地址的集合,你想想,那么多地址,如果是直接赋值,该存哪个地址哇?暂时这么多,还要需要欢迎提问
java里String类型可以直接赋值,保存的是值还是引用的地址? 首先告诉你,java里的String类型保存的就是引用地址,就像你下面说的,如果用String a=\"你好\"这种方式赋值的话,a里会保存一个地址,双引号字符串是常量字符串,在java文件。
c++编程问题,string类型怎么赋值,怎么引用 #includeincludeusing namespace std;char*name[10]={\"张一\",\"张二\",\"张三\",\"张四\",\"张五\",\"王一\",\"赵一\",\"孙一\",\"章子一\",\"李天一\"};class Score{string name[10],ch,p;double score1[10];int i,j;public:Score();Score(char*name1[],double score2[]);void judge();void show();};Score:Score(){for(i=0;i;i+){score1[i]=0;}}Score:Score(char*name1[],double score2[]){for(i=0;i;i+){name[i]=name1[i];score1[i]=score2[i];}}void Score:judge(){double x;for(i=1;i;i+)for(j=0;j;j+){if(name[j][j+1]){ch=name[j],name[j]=name[j+1],name[j+1]=ch;x=score1[j],score1[j]=score1[j+1],score1[j+1]=x;}}}void Score:show(){for(i=0;i;i+)cout[i][i];}int main(){string name[10];double score1[10];int i;for(i=0;i;i+)cin>;>;score1[i];Score a(name,score1);a.judge();a.show();return 0;}
C# 中 string不是引用类型吗 为什么传递参数后 它的值没改变 在C#中,有两种类型:引用类型(如:string)和非引用类型(如:int)。引用类型指向的其实是一个内存地址,String 虽然是引用类型 不过是不可变的对字符串做一些操作 比如大小写的转换+实际上是重新创建了一个字符串这也是为什么在做大量字符串拼接的时候要使用StringBuilder 而不用+如:string a=“A”;a+\"B;这时实际上是相当于重新创建了一个string 对象b,b的值是“AB”。
string 是 引用类型为什么赋值后更改无效 你得看代码执行的顺序,如果string a=\"abc;a=\"def;string b=a;MessageBox.Show(b);string是c#中的类,String是.net Framework的类(在c# IDE中不会显示蓝色)c# string映射为.net Framework的String如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作如果使用c#,建议使用string,比较符合规范string始终代表 System.String(1.x)或:System.String(2.0),String只有在前面有using System;的时候并且当前命名空间中没有名为String的类型(class、struct、delegate、enum)的时候才代表System.Stringstring是关键字,String不是,也就是说string不能作为类、结构、枚举、字段、变量、方法、属性的名称,而String可以。无法获取托管类型(“string”)的地址和大小,或无法声明指向它的指针知道是什么意思了嘛?呵呵:-)
string引用类型,向方法中传完值之后,在主方法中为什么值不会改变 看下面这段代码public class Test0 {public static void change(String s){System.out.println(s);s=\"2;System.out.println(s);}public static void main(String[]args){String s=\"1;change(s);System.out.println(s);}}运行结果为121原因如下:首先要明白String对象的内容不可改变。在main方法中的s是一个引用,s保存了一个内存地址,这个内存地址指向了“1”这个String对象change(s);这行代码将s的内存地址赋值给了下面这段代码中的s变量(这个s与main方法中的s其实是两个不一样的变量,先往下看,最后会解释为什么不一样)public static void change(String s){System.out.println(s);s=\"2;System.out.println(s);}接着看public static void change(String s)第一次打印s,s的地址指向“1”这个String对象,所以打印出来是1而后s的地址指向了“2”(这里注意不是将1修改为2,而是change方法里的s重新指向了\"2\")(所以我说String对象不可变)所以第二次打印打印出来是2最后一次打印的s与上面两次打印的s其实是两个不一样的变量,所以这一个s指向的仍然是\"1\"这个对象,打印的值自然就是1最后说一下main方法里的s与change方法的形参s为什么不。
java的引用和c里面的指针有何不同?String直接赋值和String new出来的有何区别? 你好!你的问题太长了,而且,我没有抓住重点。所以就你题目来进行部分解答,希望对你有所帮助。java的引用和c里面的指针有何不同?这个我也说不好,java的引用 想当于C的指针,是在JVM堆中的一个地址指向。如果要说不同,的话,就是我们不能对JVM做什么,只能对它存储的值进行操作。而C是可以对内存进行操作的。String直接赋值和String new出来的有何区别?String str=\"hello;String str=new String(\"hello\");这两个,在结果上没有区别。细微的区别就是 java重写了“”这个符号\"\"与 new String();这是等同的。hello\"是在 堆 中创建了一个对象,并直接赋值。new String(\"hello\");是创建了两个对象。hello\"创建 了第一个对象。new String(str)利用第一个对象的值,创建了第二个对象。