<commit_before>---
layout:     post
title:      "Pointer"
subtitle:   "Basic Pointers in Cpp"
date:       2015-3-15 12:00:00
author:     "Caedmom"
header-img: "img/in-post/default-bg.jpg"
tags:
    - C++
    - Pointer
---


## 1. 指针的概念
---

* 在计算机中，内存是由若干存储单元组成的，**每个存储单元均有一个唯一的编号用于标识该存储单元**，该编号称为存储单元的地址。 

* 在C++中，数据是用**变量**或**数组**等形式存放在存储器中的。 

* 如int a，该语句定义了整形变量a，**编译系统将为变量a分配内存单元**，用于存放整数。 

* 假设编译系统为变量a分配的内存单元地址为2014，则为a分配的存储单元（首）地址2014称为变量的指针。  

* 所谓**指针就是变量、数组、函数等的内存地址**。 

* 专门**用于存放内存单元地址（即指针）的变量**称为指针变量。 

* 引入指针变量的目的是提供一种对变量进行间接访问的手段。指针变量必须先说明后使用。 


---

## 2. 代码示例

---

`C++`
<pre><code>#include <iostream>
using namespace std;

void main()
{
	int m, n, *p1 = &m, *p2 = &n, *phint = NULL;
	m = 1;
	n = 2;
	cout << "*p1=" << *p1 << ",*p2=" << *p2 << endl;
	cout << "p1=" << p1 << ",p2=" << p2 << endl;
	cout << "m=" << m << ",n=" << n << endl;
	cout << "phint=" << phint << endl;

	*p1 += 3;
	p2 = p1;
	*p2 *= 4;
	phint = p2;
	cout << "*p1=" << *p1 << ",*p2=" << *p2 << endl;
	cout << "p1=" << p1 << ",p2=" << p2 << endl;
	cout << "m=" << m << ",n=" << n << endl;
	cout << "phint=" << phint << endl;
	system("pause");
}
</code></pre> <commit_msg>modify-post<commit_after>---
layout:     post
title:      "Pointer"
subtitle:   "Basic Pointers in Cpp"
date:       2015-3-15 12:00:00
author:     "Caedmom"
header-img: "img/in-post/default-bg.jpg"
tags:
    - C++
    - Pointer
---


## 1. 指针的概念
---

* 在计算机中，内存是由若干存储单元组成的，**每个存储单元均有一个唯一的编号用于标识该存储单元**，该编号称为存储单元的地址。 

* 在C++中，数据是用**变量**或**数组**等形式存放在存储器中的。 

* 如int a，该语句定义了整形变量a，**编译系统将为变量a分配内存单元**，用于存放整数。 

* 假设编译系统为变量a分配的内存单元地址为2014，则为a分配的存储单元（首）地址2014称为变量的指针。  

* 所谓**指针就是变量、数组、函数等的内存地址**。 

* 专门**用于存放内存单元地址（即指针）的变量**称为指针变量。 

* 引入指针变量的目的是提供一种对变量进行间接访问的手段。指针变量必须先说明后使用。 


---

## 2. 代码示例

---

`C++`
```C++
#include <iostream>
using namespace std;

void main()
{
	int m, n, *p1 = &m, *p2 = &n, *phint = NULL;
	m = 1;
	n = 2;
	cout << "*p1=" << *p1 << ",*p2=" << *p2 << endl;
	cout << "p1=" << p1 << ",p2=" << p2 << endl;
	cout << "m=" << m << ",n=" << n << endl;
	cout << "phint=" << phint << endl;

	*p1 += 3;
	p2 = p1;
	*p2 *= 4;
	phint = p2;
	cout << "*p1=" << *p1 << ",*p2=" << *p2 << endl;
	cout << "p1=" << p1 << ",p2=" << p2 << endl;
	cout << "m=" << m << ",n=" << n << endl;
	cout << "phint=" << phint << endl;
	system("pause");
}
```
{'fraction_non_alphanumeric': 0.25874730021598275, 'fraction_numerical': 0.04319654427645788, 'mean_word_length': 3.337078651685393, 'pattern_counts': {'":': 0, '<': 153, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '800260', 'n_tokens_mistral': 1443, 'n_tokens_neox': 1508, 'n_words': 214}