>  기사  >  C 언어에서 정적 변수를 사용하는 방법은 무엇입니까?

C 언어에서 정적 변수를 사용하는 방법은 무엇입니까?

清浅
清浅원래의
2019-05-05 16:42:0420396검색

C 언어에서 정적 변수의 역할은 함수 호출 중에 값을 변경하지 않고 유지하는 것입니다. 왜냐하면 정적 변수에는 메모리 함수가 있지만 범위가 제한되어 있고 모듈 내의 함수에서만 사용할 수 있기 때문입니다. 방문 등

C 언어에서 정적 변수를 사용하는 방법은 무엇입니까?

추천: "ctutorial"

C 언어에서 정적 변수의 역할은 다음과 같습니다. 정적 변수에는 메모리 기능이 있으며 함수 호출 중에 값이 변경되지 않고 유지됩니다. 해당 범위는 제한되어 있으며 모듈 내의 함수를 통해서만 액세스할 수 있습니다.

C 언어에서 정적 변수를 사용하는 방법은 무엇입니까?

C 언어에서 키워드 static은 정적을 의미하며 3가지 명백한 기능을 갖습니다:

1 . 정적 변수에는 메모리 함수가 있습니다. 즉, static으로 선언된 변수의 값은 함수가 호출될 때 변경되지 않습니다.

2. 모듈 내(함수 외부)에서는 범위가 제한됩니다. 변수가 정적으로 선언되면 모듈의 모든 함수에서 해당 변수에 액세스할 수 없습니다. 모듈 외부의 다른 기능으로.

3. 현재 소스 파일 외부에서 사용할 수 있는 기능은 해당 기능을 사용하는 소스 파일에 설명하고 정의해야 합니다. 이 헤더 파일을 포함해야 합니다.

정적 데이터 멤버의 특성:

1. 비정적 데이터 멤버의 경우 각 클래스에는 자체 복사본이 있습니다. 정적 데이터 멤버는 클래스의 멤버로 처리됩니다. 이 클래스의 개체 수에 관계없이 프로그램에는 이 유형의 모든 개체가 공유하고 액세스하는 정적 데이터 멤버의 복사본이 하나만 있습니다.

2. 정적 데이터 멤버는 전역 데이터 영역에 저장됩니다. 정의할 때 공간을 할당해야 하므로 클래스 선언에서는 정의할 수 없습니다. 정적 데이터 멤버는 이 클래스의 모든 객체에 의해 공유되므로 특수 클래스 객체에 속하지 않습니다. 클래스 객체가 생성되지 않으면 해당 범위가 표시됩니다. 즉, 클래스의 인스턴스가 없을 때 프로그래머도 이를 사용할 수 있습니다. 생성되었습니다.

3. 정적 데이터 구성원은 공개, 보호 및 비공개 액세스 규칙도 준수합니다.

4. 정적 멤버 변수의 초기화는 클래스 외부에서 이루어지며 현재는 static 키워드를 사용할 수 없습니다. private 및 protected의 정적 멤버는 클래스 외부에서 초기화할 수 있지만 클래스 외부에서는 액세스할 수 없습니다.

정적 데이터 멤버의 장점:

1 정적 데이터 멤버는 프로그램의 전역 네임스페이스에 들어가지 않습니다. 프로그램의 다른 구성원과 함께 존재합니다. 전역 이름 충돌 가능성이 있습니다.

2. 정보 숨김이 가능합니다. 정적 데이터 멤버는 전용 멤버일 수 있지만 전역 변수는 그럴 수 없습니다.

#include<stdio.h>
#include <iostream>
#include "a.h"
using namespace std;
void fun(int i)
{    static int value = i++;
    cout<<value<<endl;
}int main()
{
    fun(0);
    fun(1);
    fun(2);    return 0;
}

실행 결과

0
0
0

위 내용은 C 언어에서 정적 변수를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.