статическая жизнь - PullRequest
       1

статическая жизнь

0 голосов
/ 23 октября 2010

У меня проблема со статическими переменными. Говорят, что срок службы статической переменной находится за пределами функции (если она определена в функции). Но указатель на него должен давать значение, если он выходит. Но это не работает.

#include<stdio.h>
int *p;
int main()
{
    clrscr();
    test();
    printf("%d",*p);
    return 0;
}

void test(void)
{
    static int chacha=0;
    p=&chacha;
}

Ответы [ 2 ]

3 голосов
/ 23 октября 2010

Это не похоже на то, что вы объявили p в любом месте.

Попробуйте это в test:

int* test(void)
{
    static int chacha = 0;
    return &chacha;
}

Теперь, если ваш главный:

int main()
{
    int *p;
    clrscr();
    p = test();
    printf("%d",*p);
    getch();
    return 0;
}

вы увидите поведение, которое ожидаете.

2 голосов
/ 23 октября 2010
int *p;

int main()
. . .
. . .
. . .
p = &chacha;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...