Always keep a begi|

银河小船儿

园龄:1年7个月粉丝:11关注:4

C++之指针变量的定义和使用

从b站上黑马程序员的c++课里学到的C++之指针变量的定义和使用

指针变量的定义和使用

 简单理解指针就是地址。

     内存编号是从0开始记录的,一般用16进制数字表示

 

复制代码
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int a = 10; //定义整型变量a
 7 
 8     //1,指针的定义语法:数据类型 * 变量名;
 9     int* p;
10 
11     p = &a; //建立指针和变量的关系,让指针记录变量a的地址
12     cout << "a的地址为:" << &a << endl;
13     cout << "指针p为:" << p << endl;
14 
15     //2,指针的使用
16     //可以通过解引用的方式来找到指针指向的内存
17     //指针前加 * 代表解引用,找到指针指向的内存中的数据
18     *p = 1000;
19     cout << "a = " << a << endl;
20     cout << "*p = " << *p << endl;
21 
22     return 0;
23 }
复制代码

 

运行结果显示:

 

指针所占的内存空间

      在32位操作系统下:占用4个字节空间,64位下占用8个字节。

     生成----配置管理器----平台,可以更改编译器的环境

 

 

 

 

复制代码
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int a = 10;
 7     int* p = &a;
 8     cout << "sizeof (int *) = " << sizeof(p) << endl;
 9     cout << "sizeof (int *) = " << sizeof(int *) << endl;
10     cout << "sizeof (float *) = " << sizeof(float *) << endl;
11     cout << "sizeof (double *) = " << sizeof(double *) << endl;
12     cout << "sizeof (char *) = " << sizeof(char *) << endl;
13 
14     return 0;
15 }
复制代码

 

 运行结果显示:

 

 

 熟记:在32位操作系统下,指针是占4个字节空间大小,不管是什么数据类型;在64位操作系统下,指针是占8个字节空间大小,不管是什么数据类型。

 

空指针和野指针

      空指针:指针变量指向内存中编号为0的空间

      用途:初始化指针变量

      注意:空指针指向的内存是不可以访问的

 

       野指针:指针变量指向非法的内存空间

       在程序中。尽量避免出现野指针

 

总结:空指针和野指针都不是我们申请的空间,因此不要访问。

 

const 修饰指针

        1,const修饰指针:常量指针,const int * p = &a;  

       特点:指针的指向可以修改,但是指针指向的值不可以改。指针的指向可以指向这个内存单元,也可以更改,指向另一个内存单元。指针指向的值是指针指向的内存单元里存放的数据不可以改。

      2,const修饰常量:指针常量,int * const p = &a;

      特点:指针的指向不可以改,指针指向的值可以改。

      3,const既修饰指针,又修饰常量,const int * const p = &a;

 

本文作者:romantichuaner

本文链接:https://www.cnblogs.com/romantichuaner/p/17571645.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   银河小船儿  阅读(84)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起