찾다
  • 로그인
  • 가입
비밀번호 재설정 성공

당신이 관심을 갖고 있는 프로젝트를 팔로우하고 그들에 관한 최신 뉴스를 맛보세요

C++ 포인터

수집 154
읽다 53384
업데이트 시간 2016-09-11

C++에서 포인터를 배우는 것은 쉽고 재미있습니다. 포인터는 일부 C++ 프로그래밍 작업의 실행을 단순화하며 동적 메모리 할당과 같은 일부 작업은 포인터 없이 수행할 수 없습니다. 그러므로 훌륭한 C++ 프로그래머가 되려면 포인터를 배우는 것이 필요합니다.

아시다시피 모든 변수에는 메모리 위치가 있으며 각 메모리 위치는 메모리의 주소를 나타내는 하이픈(&) 연산자를 사용하여 액세스할 수 있는 주소를 정의합니다. 다음 예를 참조하세요. 정의된 변수 주소가 출력됩니다.

#include <iostream>

using namespace std;

int main ()
{
   int  var1;
   char var2[10];

   cout << "var1 变量的地址: ";
   cout << &var1 << endl;

   cout << "var2 变量的地址: ";
   cout << &var2 << endl;

   return 0;
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

var1 变量的地址: 0xbfebd5c0
var2 变量的地址: 0xbfebd5b6

위 예를 통해 우리는 메모리 주소가 무엇인지, 어떻게 작동하는지 이해합니다. 그것에 액세스하십시오. 다음으로 포인터가 무엇인지 살펴보겠습니다.

포인터란 무엇인가요?

포인터는 값이 다른 변수의 주소, 즉 메모리 위치의 직접 주소인 변수입니다. 다른 변수나 상수와 마찬가지로 포인터를 사용하여 다른 변수의 주소를 저장하기 전에 포인터를 선언해야 합니다. 포인터 변수 선언의 일반적인 형식은 다음과 같습니다.

type *var-name;

여기서 type은 포인터의 기본 유형이며 유효한 C++ 데이터 유형이어야 하며 var-name은 포인터 변수의 이름입니다. 포인터를 선언하는 데 사용되는 별표 *는 곱셈에 사용되는 것과 동일합니다. 그러나 이 명령문에서는 별표를 사용하여 변수가 포인터임을 지정합니다. 다음은 유효한 포인터 선언입니다.

int    *ip;    /* 一个整型的指针 */
double *dp;    /* 一个 double 型的指针 */
float  *fp;    /* 一个浮点型的指针 */
char   *ch     /* 一个字符型的指针 */

정수, 부동 소수점, 문자 또는 기타 데이터 유형이든 모든 포인터 값의 실제 데이터 유형은 동일하며 메모리 주소를 나타내는 긴 값입니다. 숫자. 다양한 데이터 유형의 포인터 간의 유일한 차이점은 포인터가 가리키는 변수 또는 상수의 데이터 유형입니다.

C++에서 포인터 사용

포인터를 사용할 때 포인터 변수를 정의하고, 변수 주소를 포인터에 할당하고, 포인터 변수에서 사용 가능한 주소 값에 액세스하는 작업이 자주 수행됩니다. 이는 단항 연산자 *를 사용하여 피연산자가 지정한 주소에 있는 변수의 값을 반환함으로써 수행됩니다. 다음 예제에는 이러한 작업이 포함됩니다.

#include <iostream>

using namespace std;

int main ()
{
   int  var = 20;   // 实际变量的声明
   int  *ip;        // 指针变量的声明

   ip = &var;       // 在指针变量中存储 var 的地址

   cout << "Value of var variable: ";
   cout << var << endl;

   // 输出在指针变量中存储的地址
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

   // 访问指针中地址的值
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

Value of var variable: 20
Address stored in ip variable: 0xbfc601ac
Value of *ip variable: 20

C++ 포인터에 대한 자세한 설명

C++에는 포인터 관련 개념이 많이 있습니다. 간단하지만 중요합니다. 아래에는 C++ 프로그래머가 알아야 할 중요한 포인터 관련 개념이 나열되어 있습니다.

ConceptDescription
C++ 널 포인터C++는 널 포인터를 지원합니다. NULL 포인터는 표준 라이브러리에 0 값으로 정의된 상수입니다.
C++ 포인터 산술 연산포인터에 대해 네 가지 산술 연산을 수행할 수 있습니다: ++, --, +, -
C++ 포인터 대 배열 포인터와 배열 사이에는 밀접한 관계가 있습니다.
C++ 포인터 배열포인터를 저장하는 데 사용되는 배열을 정의할 수 있습니다.
C++ 포인터 대 포인터C++에서는 포인터 대 포인터를 허용합니다.
C++ 함수에 포인터 전달전달된 매개변수가 호출 함수에서 변경되도록 매개변수를 참조 또는 주소로 전달합니다.
C++ 함수에서 포인터 반환 C++에서는 함수가 지역 변수, 정적 변수 및 동적 메모리 할당에 대한 포인터를 반환할 수 있습니다.
핫 AI 도구
Undress AI Tool
Undress AI Tool

무료로 이미지를 벗다

AI Clothes Remover
AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undresser.AI Undress
Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

Stock Market GPT
Stock Market GPT

더 현명한 결정을 위한 AI 기반 투자 연구

인기 있는 도구
메모장++7.3.1
메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6
드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전
SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)