我知道当函数之间传递字符串时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:你是什么意思? –