2017-11-09 3 views
0

아래 코드가 있습니다. 그러나 x와 * px의 수명과 범위를 결정하는 것은 어렵습니다. 나는 그 용어의 개념을 알고있다. x와 * px는 시작시 선언되고 어쨌든 끝나기 때문에 main 함수 나 global 외부에서 선언되지 않았기 때문에 지역 변수로 간주해야합니까? 정적 자동뿐만위한 X뿐만 아니라 PX 혼동 은 .....포인터 변수와 변수의 범위와 유효 기간 결정

#include <stdio.h> 
int main(void) 
{ 
    double x=3.14, *px = &x; 
    printf("ADDR:%p\n", &x); 
    printf("ADDR:%p\n", &px); 

    return 0; 
} 

답변

0

x 이후 X 및 PX

의 수명 px 메인 함수의 로컬 변수 주 기능이 실행되는 한 프로그램은 실행됩니다 (주 기능의 특성).이 변수는 프로그램의 전체 런타임에 존재합니다. 그렇다고해서 이들을 글로벌하게 만들지는 못합니다.

xpx 및이 의미 main() 로컬 변수 픽셀 x의 범위는 오직 기본 함수 내부에서 그 직접 액세스 할 수있다.

간접적으로 다른 함수에서 이러한 함수에 대한 포인터가 있으면 함수에 액세스 할 수 있지만 변수 자체와는 아무런 관련이 없습니다.


정적 및 자동 변수에 대해 혼란을 명확히하기 위해,이 더 나은 설명이 답변을 참조하고 싶은 내가 할 수있는 것보다 : Difference between static, auto, global and local variable in the context of c and c++