我知道當函數之間傳遞字符串時C字符串處理
char * str幾乎與函數頭中的char str [n]相同。
然而,我想知道爲什麼會工作,什麼用繩子工作時
我發現,如果我「中的char *」首先聲明一個那麼=字符串賦值給它」這兩個之間的區別串;」 這不會工作
有人可以告訴我這是什麼?
有無論如何我可以指定一個數組到另一個數組?像Java中
感謝
char[] one;
char[] two={'a','b'};
one=two;
我知道當函數之間傳遞字符串時C字符串處理
char * str幾乎與函數頭中的char str [n]相同。
然而,我想知道爲什麼會工作,什麼用繩子工作時
我發現,如果我「中的char *」首先聲明一個那麼=字符串賦值給它」這兩個之間的區別串;」 這不會工作
有人可以告訴我這是什麼?
有無論如何我可以指定一個數組到另一個數組?像Java中
感謝
char[] one;
char[] two={'a','b'};
one=two;
char[] one;
的語法是錯誤的。這不是Java。
char* one;
char two[]={'a','b'};
one = two;
這是可行的,因爲數組衰減爲指針。
「char * str幾乎與函數頭中的char str [n]相同。」
NO。數組和指針是兩個不同的概念。他們兩個都不一樣。
Array
和Pointer
是兩個不同的概念。我想你應該基本開始緩慢,這是一個文件解釋:http://www.cs.bu.edu/teaching/cpp/string/array-vs-ptr/
字符串和數組的概念在cpp和c中是一樣的嗎?感謝您的鏈接 – kun
在C++中,您有'std :: string',這是一個處理字符串的類。但是,您仍然可以使用C風格的字符串。在C中,'string'是一個不是類型的概念,是一個以'\ 0'(NULL)字符結尾的字符數組。這是差別! –
@xjaphx:'NULL'是一個空*指針*常量,不是空字符。 –
對於C(和C++)中數組和指針之間的關係,我見過的最好的解釋是comp.lang.c FAQ的第6部分。
指向相同的內存位置:) –
作爲函數參數聲明,'char * str'和'char [n]'*是*相同的;他們都聲明'str'作爲指針。 (這隻適用*參數。) –
@xjaphx:你是什麼意思? –