Latest web development tutorials

C ++ 포인터

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;

여기서, 타입은베이스 타입에 대한 포인터이며, 유효한 C ++ 데이터 유형이어야VAR-name은 포인터 변수의 이름이다. 포인터 별표 * 곱셈은 별표 (*)를 사용하여 선언하는 데 사용됩니다 동일합니다. 그러나이 성명에서, 별표는 변수가 포인터를 지정하는 데 사용됩니다. 다음은 유효한 포인터의 선언입니다 :

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

모든 포인터는 정수, 부동 소수점, 문자열, 또는 다른 데이터 유형이 같은지 값의 실제 데이터 유형은 16 진수 긴 메모리 어드레스를 나타내고있다. 데이터 포인터의 종류의 유일한 차이점은 포인터 변수 또는 정수 데이터 유형이다.

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 ++ 프로그래머가 포인터와 관련된 몇 가지 중요한 개념을 알고 있어야합니다 목록을 다음과 같은 :

概念描述
C++ Null 指针 C++ 支持空指针。NULL 指针是一个定义在标准库中的值为零的常量。
C++ 指针的算术运算 可以对指针进行四种算术运算:++、--、+、-
C++ 指针 vs 数组 指针和数组之间有着密切的关系。
C++ 指针数组 可以定义用来存储指针的数组。
C++ 指向指针的指针 C++ 允许指向指针的指针。
C++ 传递指针给函数 通过引用或地址传递参数,使传递的参数在调用函数中被改变。
C++ 从函数返回指针 C++ 允许函数返回指针到局部变量、静态变量和动态内存分配。