Указатель char, инициализированный внутри тела функции, ведет ли он себя как статическая переменная?
void fun( char *s) { char *p="Magic"; int x=0; while(*(p+x)!='\0') { switch(*s) { case 'a': case 'e': case 'i': case 'o': case 'u':*s=++*p; } s++;x++;} //cout<<"The Data1 is \t"<<p<<endl; } void main() { clrscr(); char *st[]= {"Good","Logic"}; for( int i=0;i<2;i++) { fun(*(st+i)); cout<<"The Data2 is\t"<<st[i]<<endl; } getch(); }
Что я уже пробовал:
Каждый раз, когда функция вызывается, она сохраняет значение указателя p и исходит оттуда.
User 59241
Никакой указатель char не является статической переменной. Объясните свой вопрос полностью-Почему вы так думаете? Используйте вопрос улучшения.
Richard MacCutchan
Да, потому что вы инициализируете p
чтобы указать на слово "Magic"
в начале fun
. Но p
это все еще не статический указатель.
Philippe Mori
Нет особого смысла писать плохой код для такого вопроса, и код совсем не минималистичен... Около 75% кода совершенно бесполезны для ответа на этот вопрос.