1、指针
<1 基础用法
int main() { int a = 20; int *p; p = &a; //注意这里有地址标识符& cout << a << endl; //输出20 cout << p << endl; //输出p指针地址 cout << *p << endl; //输出20 system("pause"); return 0; }
<2 NULL指针
<3指针与数组超详细版
指针递增(注意指针指向数组时不能加&,指向数组中单个元素时可以加&)
const int MAX = 3; int main () { int var[MAX] = {10, 100, 200}; int *ptr; // 指针中的数组地址 ptr = var; for (int i = 0; i < MAX; i++) { cout << "Address of var[" << i << "] = "; cout << ptr << endl; cout << "Value of var[" << i << "] = "; cout << *ptr << endl; ptr++; // 移动到下一个位置 } return 0; } /*输出结果 Address of var[0] = 0xbfa088b0 Value of var[0] = 10 Address of var[1] = 0xbfa088b4 Value of var[1] = 100 Address of var[2] = 0xbfa088b8 Value of var[2] = 200 */
指针递减
const int MAX = 3; int main () { int var[MAX] = {10, 100, 200}; int *ptr; // 指针中最后一个元素的地址 ptr = &var[MAX-1]; for (int i = MAX; i > 0; i--) { cout << "Address of var[" << i << "] = "; cout << ptr << endl; cout << "Value of var[" << i << "] = "; cout << *ptr << endl; // 移动到下一个位置 ptr--; } return 0; } /*输出结果 Address of var[3] = 0xbfdb70f8 Value of var[3] = 200 Address of var[2] = 0xbfdb70f4 Value of var[2] = 100 Address of var[1] = 0xbfdb70f0 Value of var[1] = 10 */
指针比大小
const int MAX = 3; int main () { int var[MAX] = {10, 100, 200}; int *ptr; // 指针中第一个元素的地址 ptr = var; int i = 0; while ( ptr <= &var[MAX - 1] ) { cout << "Address of var[" << i << "] = "; cout << ptr << endl; cout << "Value of var[" << i << "] = "; cout << *ptr << endl; // 指向上一个位置 ptr++; i++; } return 0; }
数组前加*指针:
注意
#include <iostream> using namespace std; const int MAX = 3; int main () { int var[MAX] = {10, 100, 200}; for (int i = 0; i < MAX; i++) { *var = i; // 这是正确的语法 cout<<var[i]<<endl; cout<<var[0]<<endl; } return 0; } //输出结果竟然是0 0 100 1 200 2. //说明把一个数赋给数组指针只是给了他第一个元素
小结: a[3] a指数组的地址
**** p p表示地址 p表示地址下的值**
最后,如果你想学C/C++可以私信小编“01”获取素材资料以及开发工具和听课权限哦!