1樓:
"abc"是一個字串
而a是一個指標
所以一個指標等於一個字串是不對的
而且在c語言中也不能用「=」號給一個字串賦值,等號只能用於簡單變數的賦值,在c++或物件導向的語言當中可以對「=」進行過載這時就可以用等號了。
在c中對字串賦值是這樣做的
a[0]=a;
a[1]=b;
a[2]=c;
而在c++中要分c型別的字串即char * 和標準庫字串string兩種,其中c型別的就和c語言的用法一樣。而string由於過載的『=』所以可以用等號對其賦值例如
string str;
str = "abcdef"; //長度是任意的或,string str1 = "aassdd", str2;
str2 = str1;
這些操作都是允許的。還可以將 char *和string進行相互轉換。
2樓:匿名使用者
a="abc"這樣是錯的
因為 char 陣列不是 字串,不能用字串初始化陣列。
cin>>a;這樣是對的
因為 >> 被過載,可以方便程式設計師輸入。
建議:如果你是學c++,不要糾結在這些 「似c非c」的語法細節上,直接用c++標準庫程式設計。
3樓:北風微風
陣列名可以理解成一個常量指標,指向陣列的第一個元素,不能被賦值,但是它可以代表一個陣列所有元素,領隊的嘛。
cin>>a;可以這樣用,是因為cin過載了操作符(和函式差不多),傳引數的時候,也只只是把a作為指標傳過去的,然後一個字元一個字元賦值的。
關於C 的陣列問題
1.先說一下實際上這樣的問題不用上來問的。你自己就能很好的解決,你把str 4 換成str就會把一個陣列都輸出出來。因為str本身就是一個指標,再結合指標那章的知識,實際上 s輸出的就是從str指標開始的後面的所有的數。2.明白指標和陣列的關係,你可以自己寫一個char p 然後指向陣列,然後再pr...
C語言陣列問題
1 儘管在主函式中採用了指標,但傳遞給子函式的是 x,y,即在子函式中a收到 的是 x,b收到的是 y,在子函式中交換的是a,b單元的內容,即為 x,y,並沒 有交換主函式中x,y單元的內容。2 要想利用子函式交換x,y單元的內容,除了採用指標傳遞之外,子函式中的 交換注意使用 運算子,找到x,y單...
c語言陣列中括號的問題,C語言陣列中括號的問題
函式形參中int sorce其實相當於int sorce,所以是指標而不是陣列,不信你可以在函式內改變形參sorce的值,而陣列是不可以重新賦值的。c 是不接受陣列作形參的。 可以在定義陣列的時候直接賦值,那樣就可以省略了列如 int a 陣列定義時必須確定長度,系統才知道給它分配多少記憶體。陣列作...