Декларация char * VS (символ *) в C - PullRequest
0 голосов
/ 15 октября 2019

Мне нужно понять разницу между двумя видами объявлений:

char *ptr ; 
(char *) ptr = ptr1;

1 Ответ

2 голосов
/ 15 октября 2019

Существует только одно объявление

char *ptr ;

Оператор выражения

(char *) ptr = ptr1;

не будет компилироваться, поскольку в левой части используется временный объект, не являющийся lvalue из-за Cформа приведения.

Может быть, вы имеете в виду следующее

char ( *ptr ) = ptr1;

В данном случае это действительно объявление и оно совпадает с

char *ptr = ptr1;

Там, где существует разницаэто следующий пример

char * p[N];

и

char ( *p )[N];

Первое объявление объявляет массив из N элементов типа char *. Второе объявление объявляет указатель на массив типа char[N].

...