В этом примере, какая разница, если переменная string_a
объявлена как static
переменная?Какова продолжительность жизни объекта?
const char *pString;
void first(void)
{
const char string_a[] = " First string ";
pString =(char *)string_a;
}
void second(void)
{
const char string_b[] = " Second string ";
pString =(char *)string_b;
}
int main()
{
first();
second();
printf("%s\n", pString);
}
Что определяло жизнь объекта в C?
Какова разница между глобальной и файл области видимости переменных?
См. Также http://stackoverflow.com/questions/7632120/scope-vs-life-of-variable-in-c – torek
* «Срок службы объекта» *? Что вы имеете в виду? C не имеет объектов. – m0skit0
Чтобы уточнить m0skit0, этот вопрос неоднозначен, потому что у C нет объектов. Например, когда вы говорите о времени жизни 'string_a', неясно, означает ли вы время жизни самого указателя или время жизни вещи, на которую указывает. Спрашивать смутные вопросы, как правило, вы получаете путаные ответы. –