Latest web development tutorials

C ++ pointer

Belajar C ++ pointer mudah dan menyenangkan. Melalui pointer, Anda dapat menyederhanakan pelaksanaan beberapa C ++ tugas pemrograman, ada beberapa tugas, seperti alokasi memori dinamis, tidak ada pointer adalah tidak dapat dilaksanakan. Jadi, saya ingin menjadi seorang programmer C ++ yang baik, belajar pointer diperlukan.

Seperti yang Anda ketahui, masing-masing variabel memiliki lokasi memori, setiap lokasi memori mendefinisikan alamat-operator akses dapat menggunakan tanda hubung (&), yang mewakili sebuah alamat di memori. Perhatikan contoh berikut, yang akan menentukan output alamat variabel:

#include <iostream>

using namespace std;

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

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

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

   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

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

Sebagai contoh di atas, kita memahami apa alamat memori dan bagaimana untuk mengaksesnya. Mari kita lihat apa yang pointer.

Apa pointer?

Sebuah pointer adalah variabel yang nilainya adalah alamat dari variabel lain, yaitu, alamat langsung dari lokasi memori.Sebelum Seperti variabel atau konstanta lain, Anda harus menggunakan alamat memori pointer variabel lain, dinyatakan. Bentuk umum dari variabel pointer deklarasi adalah:

type *var-name;

Di sini, jenis adalah pointer ke tipe dasar, itu harus menjadi C valid ++ jenis data,var-nama adalah nama dari variabel pointer. Digunakan untuk menyatakan pointer tanda bintang * perkalian menggunakan tanda bintang adalah sama. Namun, dalam pernyataan ini, tanda bintang digunakan untuk menentukan variabel adalah pointer. Berikut ini adalah deklarasi pointer yang valid:

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

Semua pointer tipe data aktual dari nilai, apakah itu integer, float, string, atau jenis data lain yang sama, adalah angka heksadesimal mewakili alamat memori lama. Satu-satunya perbedaan antara berbagai jenis data pointer, pointer adalah variabel atau konstanta tipe data.

Menggunakan pointer di C ++

Akan sering menggunakan pointer ketika tindakan berikut: mendefinisikan sebuah variabel pointer, alamat variabel ditugaskan untuk pointer, mengakses nilai variabel pointer alamat yang tersedia. Hal ini dilakukan dengan menggunakan operator* unary untuk mengembalikan nilai variabel terletak di alamat operand ditentukan.Contoh berikut berhubungan dengan tindakan ini:

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

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

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

C ++ Penjelasan pointer

Dalam C ++, ada banyak pointer konsep terkait yang sangat sederhana, tetapi sangat penting. Berikut daftar C ++ programmer harus menyadari beberapa konsep penting yang terkait dengan pointer:

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