Если у вас есть T*
(называемый указателем на объект типа T
) и вы хотите получить T
(объект типа T), вы можете использовать оператор *
.Он возвращает объект, указанный указателем.
В этом случае у вас есть указатель на объект типа char*
(вот и все: (char*)*
), поэтому вы можете использовать *
.
Другим способом может быть использование оператора []
, который вы используете для доступа к массивам.*s
равно s[0]
, а s[n]
равно *(s+n)
.
Если ваш char** s
является массивом char*
, с помощью printf( "%s", *str )
вы напечатаете первыйтолько.В этом случае, вероятно, легче читать, если вы используете []
:
for( i = 0; i < N; ++ i ) print( "%s\n", str[i] );
Хотя это семантически эквивалентно:
for( i = 0; i < N; ++ i ) print( "%s\n", *(str+i) );