Latest web development tutorials

Wskaźniki C ++

Nauka C ++ wskaźniki łatwe i przyjemne. Poprzez wskaźnik, można uprościć realizację niektórych zadań programowania C ++, istnieją pewne zadania, takie jak dynamiczne przydzielanie pamięci, nie ma wskaźnik jest niewykonalne. Tak, chcę stać się dobry programista C ++, wskaźniki uczenia się są konieczne.

Jak wiadomo, każda zmienna ma miejsce w pamięci, każda komórka pamięci określa adresu wykonawcy, dostęp może użyć myślnika (&), która reprezentuje adres w pamięci. Rozważmy następujące przykłady, które definiują zmienny adres wyjściowy:

#include <iostream>

using namespace std;

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

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

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

   return 0;
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

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

Tytułem przykładu powyżej, możemy zrozumieć, co adres pamięci i jak do niego dostęp. Spójrzmy na to, co jest wskaźnikiem.

Co to jest wskaźnik?

Wskaźnik jest zmienną, której wartością jest adres innej zmiennej, czyli bezpośredni adres miejsca w pamięci.Przed Podobnie jak inne zmienne lub stałe, należy użyć adresu pamięci wskaźnik innych zmiennych, jest ona zadeklarowana. Ogólna postać deklaracji zmiennej wskaźnik jest:

type *var-name;

Tutaj typ jest wskaźnikiem do typu bazowego, to musi być ważny C ++ typy danych,var-name jest nazwą zmiennej wskaźnika. Służy do deklarowania wskaźnik gwiazdką * mnożenie użyć gwiazdki jest taka sama. Jednak w tym oświadczeniu, gwiazdka jest używany do określenia zmiennej jest wskaźnikiem. Poniżej znajduje się nieważny wskaźnik:

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

Wszystkie wskaźniki rzeczywisty typ danych wartości, czy jest liczbą całkowitą, pływak, łańcuch, lub inne typy danych są takie same, to liczba szesnastkowa reprezentuje długiego adresu pamięci. Jedyną różnicą pomiędzy różnymi typami danych wskaźnik, wskaźnik jest zmienną lub stałą typy danych.

Użycie wskaźników w C ++

Będą często korzystać, gdy wskaźnik następujące działania: zdefiniować zmienną wskaźnika, zmienna adres przypisany do wskaźnika, dostęp do wartości zmiennej wskaźnik dostępnych adresów. Odbywa się to za pomocą operatorem,* zwraca wartość zmiennej znajduje się w określonym adresem argumentu.Poniższe przykłady odnoszą się do poniższych czynności:

#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;
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

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

Wskaźnik C ++ Wyjaśnienie

W C ++ istnieje wiele wskazówek związanych z nimi pojęć, które są bardzo proste, ale bardzo ważne. Poniższy list C ++ programista musi zdawać sobie sprawę z kilku ważnych pojęć związanych ze wskaźnikiem:

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