欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

指针与引用、指针与数组(一)

程序员文章站 2023-12-25 22:50:51
...

一、 指针与引用

首先 int a =10;在a的地址上存的是10
int &b = a; 引用:把a的地址取别名为b;所以a与b的地址相同,存的都是10
int *c =a; 指针:在c的地址上存的是a的地址。
直接打印c则为a的地址
&表示取地址符。所以打印&c则为c的地址
*c表示在c上存储的地址所指向的值,所以打印 *c则为10;

int a =10;
int &b = a;
int *c = a;

cout << a << endl; // 为10
cout << &a << endl; //为00B5F7CC

cout << b << endl; // 为10
cout << &b << endl;//为00B5F7CC

cout << c << endl;//为00B5F7CC
cout << &c << endl;//为00B5F7B4
cout << *c << endl;//为10

二、 指针与数组
int a[10]; 定义一个数组 :
int *b = a;定义一个指针:把a数组的首地址存到b中,及与 int *b = &a[0]相同
另外,此时b[0]的地址与a[0]的地址相同,b[1]的地址与a[1]的地址相同,后面的以此类推。

int a[];
int *b = a;
*b = 10;//与a[0]=10相同, 与b[0]=10相同
*(b+1= 20//与a[1]=20 相同,与b[1]=20相同
a[2] =30; //与*(b+2)=20相同,b[2]=30相同
b[3] =40; //与a[3] = 40相同,与*(b+3)=40 相同

cout << a[0] << endl; //得10
cout << *b << endl;//得10
cout << b[1] << end;//得10
cout << &a[0] << endl;//00B5F8F4
cout << &b[0] << endl;//00B5F8F4

cout << a[1] << endl; //得20
cout << *(b+1) << endl; //得20
cout << b[1] << endl;//得20
cout << &a[1] << endl;//00B5F8F8
cout << &b[1] << endl;//00B5F8F8

cout << a[2] << endl; //得30
cout << *(b+2) << endl; //得30
cout << b[2] << endl; //得30
cout << &a[2] << endl;
cout << &b[2] << endl;


相关标签: c#笔记 c语言

上一篇:

下一篇: