#include <stdio.h>
void A( char * ptr [] );
void B( const char * ptr [] );
void C( const char * ptr );
int main() {
char * noncon [4] = { "Hearts", "Diamonds" }; //Массив не-константных указателей
A( noncon );//отправляется в функцию, чтобы использоваться там.
const char * con [4] = { "Cats", "Dogs" };//Массив константных указателей
B( con );//отправляется в функцию, чтобы использоваться там.
char * string = "Hello";//При том, что такая строка будет находиться в памяти только для чтения и лучше делать const char * ptr = "Hello"; Причем тогда в параметрах функции const станет обязательным!
C( string );//В текущем виде не-констатный указатель передается в константный параметр.
const char variable = 'A';
C( &variable );//Передача не-констатной переменной в константный параметр не является ошибкой.
//B( noncon );//Почему-то возникает ошибка при передаче не-константного массива указателей в константный параметр?
}
void A( char * ptr[] ) {
printf ("%.10s\n", ptr[0] );
}
void B( const char * ptr[] ) {
printf ("%.10s\n", ptr[0] );
}
void C( const char * ptr ) {
printf ("%.10s\n", ptr );
}