Обработка строки C - PullRequest
       4

Обработка строки C

0 голосов
/ 08 октября 2011

Я знаю, что при передаче строк между функциями

char * str почти совпадает с char str [n] в заголовке функции.

Однако я хочу знать, почему это будет работать и в чем разница между этими двумя при работе со строкой

Я обнаружил, что если я сначала объявляю "char * in", то присваиваю ему строку "in = string;" это не сработает

Может кто-нибудь сказать мне, что за этим стоит?

Можно ли в любом случае назначить массив другому массиву? как в Java

Спасибо

char[] one;
char[] two={'a','b'};
one=two;

Ответы [ 3 ]

1 голос
/ 08 октября 2011
char[] one;

Синтаксис неверен.Это не Java.

char* one;
char two[]={'a','b'};
one = two;

Это работает, потому что массив распадается на указатель.

"char * str почти совпадает с char str [n] в заголовке функции."

NO .Массивы и указатели - это две разные концепции.Они оба не одинаковы.

0 голосов
/ 08 октября 2011

Лучшим объяснением, которое я видел для связи между массивами и указателями в C (и C ++), является раздел 6 comp.lang.c FAQ .

0 голосов
/ 08 октября 2011

Array и Pointer - это два разных понятия.Я думаю, вы должны начать медленно с основ, это одна статья, которая объясняет: http://www.cs.bu.edu/teaching/cpp/string/array-vs-ptr/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...