String str abcstr5沒問題str str 5為什麼這裡就有問題

2022-12-16 15:40:54 字數 3648 閱讀 1098

1樓:匿名使用者

這裡涉及到一個隱式轉換的問題

呼叫 字元+數字型別 例如str="abc"; str+=-5;

.net首先不會呼叫預設+運算。而是過載+運算實現字串拼接機制。-5可以隱士轉為為字元型別'-5'。不會造成資料丟失。.net預設給轉換了

而str=str-5; 會報錯。 原因是因為 =str-5觸發了.net的函式運算。

str在.net內部不能轉化為數字型別。即不能實現隱式轉化為數字型別。從深一步來講,就是沒有string型別對『-』號的過載。 所以不能通過。

2樓:帶淚的紫藤花

+在c#既可以充當四則運算子號中的加號,也可用作字串連線符,當用做字串連線符時,只要所連線的字元中含有字串,那麼其他所有的都會自動轉換成字串,所以str+=-5時 是合法的,-5會自動轉換成"-5",而str=str-5,這裡「-」只能表示成算術運算子號,而-號是不能用做四則運算的~~~所以報錯

3樓:匿名使用者

str+=-5 //結果是:abc-5, -5隱試轉換成「-5」了

str=str-5, 不知道該怎麼做

j**a中 string str+=" " 這樣型別是啥意思

4樓:匿名使用者

str += "abc" 等價於str = str + "abc"

string str="

";str+="";

str = "";

5樓:閒庭信步

型別 是string

語句的意思是

str=str+「 」

就是 在 原來的str後面追加新的字串「 」

6樓:匿名使用者

連線字串,追加到字串末尾。

7樓:廖樂天

就是字串的拼接..

和a+=b是a=a+b 一樣的

關於string問題,為啥str=「abc」,而不是 "gbc"

8樓:

這是string str = "abc";和string str = new string("abc");的區別問題;

執行語句string str="abc"時,首先檢視字串池中是否存在字串"abc",如果存在則直接將「abc」賦給str,如果不存在則先在字串池中新建一個字串"abc",然後再將其賦給str.

執行語句string str = new string("abc");時。不管字串池中是否存在字串「abc」,直接新建一個字串「abc」,(注意,新建的字串「abc」不是在字串池中),然後將其賦給str

看看這個你就明白了

9樓:

傳值和傳址的問題,相信每一本程式設計教材都拿這個問題做過典型案例分析過,change函式只是傳入了str的值,對str本身並不影響,想改變的話在引數前面加個ref就可以了

public static void main(string args) ;

change(ref str,ref ch);

system.out.print(str + " ");

system.out.print(ch);

}public static void change(ref string str, ref char ch)

10樓:憋不住事兒

public static void main(string args) ;

change(str, ch);

system.out.print(str + " ");

system.out.print(ch);

}public static void change(string str, char ch)

//你的寫法只是把自己迷惑了,改變一下寫法,也許你就明白了,你的寫法等價於下面的寫法(注意,change()方法的引數名變了)

public static void main(string args) ;

change(str, ch);

system.out.print(str + " ");

system.out.print(ch);

}public static void change(string str1, char ch1)

//看到沒,你根本沒有改變str的值;

//改一下你的change方法,

public static void change(string str1, char ch1)

//你再試下輸出

11樓:匿名使用者

你的方法根本就沒有對字串進行操作,怎麼會變呢

j**a程式string型別作為引數的問題

12樓:

string 型別是final的,第1次賦值之後,之後的修改都是產生新的物件,並不是操作的原始物件。

比如:1個string型別的物件a,你修改a**如:《a+="1";》,其實不是改變了a的值,是把a和"1"生成了1個新的物件,並且把a指向這個新的物件,實際上物件已經發生變化了。

13樓:匿名使用者

string首先不是基本型別。。。。

你可以檢視string得源**,傳遞string的時候,實際操作的是char陣列,也就是類似str.tochararray(),這裡面生成了新的物件,所以操作string物件對應的陣列不會影響到傳入的string引數的。

14樓:

我感覺你是學c開始的吧。我的理解,傳遞引數就是拿著一把鑰匙去開啟一個方法,拿回你要的東西,就這樣!

15樓:

string是基本型別,8中基本型別都不會改變的

c++中的string str問題.

16樓:

都不是。string是個類,string str,是定義一個名叫str的字串物件。

str內部儲存著字串的內容,通過str.c_str()可以獲取這個字串的首地址。

string str = "abc",這也不是將str賦值為"abc"的首地址,而是使用"abc"為值來初始化一個string類。

建議先補一下c++物件導向的基礎。

另外,首地址和字串的第一個字元是兩碼事。你可以認為首地址是字串的第一個字元的地址。

17樓:匿名使用者

在字串變數中存放的是字串的指標(即字串的地址)。在vc++6.0環境下,string變數在記憶體中佔4個位元組,指標變數在記憶體中也是佔4個位元組,它們都用於存放變數的首地址。

字串的首地址不是字串的第一個字元!字串的首地址是字串的第一個字元的地址,這第一個字元的地址的內容才是這個字串的第一個字元。ok?

18樓:匿名使用者

都不是。str.c_str()返回的才是字串的首地址。首地址是第一個字元。

19樓:匿名使用者

str的值是字串的值

問大家5道數學題,問大家道5年級數學題,謝謝了

240630 36025 1050 450240 1 40 2 32 問大家道5年級數學題,謝謝了 設2010年為x萬 10.8 x 2.4 x 13.2 答 2006為x 6x 10.8 x 1.8 答 這種題不用方程,直接算就可以。如果非要用方程,則設2010年收入是x萬元,2006年是y萬元。...

有沒簡單的菜 5,有沒簡單的菜

有沒簡單的菜?可樂雞翅 簡單一點的話先炒雞,炒到快熟倒入可樂煮15分鐘就可以 先把雞翅用鹽和醬油五香粉醃製一個小時,再用油炸一下,炸得有點焦就好。然後倒掉油,加入可樂,不要太多,剛沒過就行。用小火煮15 20分鐘就可以了。糖醋排骨 簡單的話先煮排骨加鹽,5分熟撈出再放油炒,炒時加糖和醋就行,用醬油和...

問女生喜歡什麼樣的男生,她說沒考慮過這個問題

你說女生比較陽光型是不是大大咧咧的呢?如果是的話,那可能是真的沒有考慮過回 可是,按道理應該答是大大方方說而不是冷冷地說才對,由此,我猜測,估計她是在逃避這個問題,至於是逃避這個男生還是逃避其他,我覺得是逃避其他,因為,最起碼,女生答應約會了。她肯定知道你問他這個問題的目的,她那麼回答說明她不想和你...