C++学习记录-指针1

指针的作用:

指针作为一个记录地址的变量,可以记录所指变量的地址,通过指针可以间接访问内存。

指针的定义:

数据类型 * 指针名字;

示例:

1
2
int a=10;
int *p=&a;//定义一个名为p的指针,指向a的地址。

指针的使用:

*p :解引用操作

1
2
cout<<p<<endl;//打印a的地址(十六进制)
cout<<*p<<endl;//打印a的值(*p为解引用,即取a的值)

指针占用的内存大小:

在32位操作系统中,指针占用4个字节,不管是什么类型。

在64位操作系统中,指针占用8个字节,不管是什么类型。

常量指针与指针常量:

1.常量指针 const int *p :指针指向可以修改,但指针指向的值不可以修改。

示例:

1
2
3
4
5
int a=10;
int b=20;
const int *p=&a;
p=&b;//正确,指针常量中指针的指向可以改变,指向的值不可以改变
*p=20;//错误。

2.指针常量 int * const p :指针指向不可以修改,但指针指向的值可以修改。

3.const既修饰指针又修饰常量 const int * const p:指向和指向的值均不可以修改。

冷知识:

1.指向同一数组的两个指针相减,其结果为两个指针所指向的元素下标之差