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分熟撈出再放油炒,炒時加糖和醋就行,用醬油和...
問女生喜歡什麼樣的男生,她說沒考慮過這個問題
你說女生比較陽光型是不是大大咧咧的呢?如果是的話,那可能是真的沒有考慮過回 可是,按道理應該答是大大方方說而不是冷冷地說才對,由此,我猜測,估計她是在逃避這個問題,至於是逃避這個男生還是逃避其他,我覺得是逃避其他,因為,最起碼,女生答應約會了。她肯定知道你問他這個問題的目的,她那麼回答說明她不想和你...