C++的指针
来源:互联网 发布:类似于柏拉图软件 编辑:程序博客网 时间:2024/06/15 09:26
傻傻搞不懂的C++指针———-2
1.指针的声明
在网上查到,指针进行声明时,会被随机分配指向随机地址,该地址是不明确并且不可访问的。所以要使用该指针,必须对它进行分配存储空间,否则一旦有对该指针的使用,就会报错崩溃。(没有使用不会崩)
而引用声明的时候,直接分配的存储空间,声明后即可通过&k获得其地址。
如:为了给一个整数动态分配存储空间,可以使用下面的语句来声明一个整型指针变量
int *y
2.分配存储空间
操作符new分配一块能存储一个整数的空间,并将指向该空间的指针返回给y,y是对整数指针的引用,而*y则是对整数本身的引用。
y = new int;
3.为*y赋值
在刚分配的空间中存储一个整数值,如10
*y=10;
4.合并
int *y = new int;*y = 10;
或者
int *y = new int(10);
或者
int *y;y = new int(10);
5.举例
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;int main(){ int k = 5; int *p;//声明一个指针 p = &k;//将k这个变量所在的地址 int *b = p + 1;//int是四个字节,假设k所在地址为00F9F814,则加上1后的地址为00F9F818, //为什么加1呢,因为只存储了一个int类型的整数 *b = 6;//给b这个位置的空间存储一个整数为6 cout << p << endl; cout << b << endl; cout <<"p这个位置存储的数为:"<< *(b - 1) << endl; cout <<"b这个位置存储的数为:"<< *(p + 1) << endl; system("pause"); return 0;}
解释int *b = p + 1;
内存地址是以字节为单位的,一个int是4个字节,加上1表示加上1个int类型那么大的字节数即4个字节,所以会发现内存地址增加了4个字节。如果这个p指针和b指针它不是int类型的指针,p指针加1,内存地址就不只是加4了,比如double类型。
要分清楚是指针加1还是内存地址加1,指针加1意味着内存地址加4
阅读全文
0 0
- C指针的指针
- c 指针的指针
- c中指针的指针
- c 指向指针的指针
- C 指向指针的指针
- C指针---指向指针的指针(转)
- C指针和指针的指针
- c语言指针,指向指针的指针
- C指针传递,指向指针的指针。
- 【C++】指针(5):指向指针的指针
- C语言的指针
- C的指针
- C语言的指针
- C 指针的学习
- C-51的指针
- C语言的指针
- 指针->C的灵魂
- C指针的实质
- Springboot整合mybatis出现无法注入mapper接口的问题处理
- Retrofit(一)、Retrofit+OkHttp实现简单的Get与Post请求
- 3442: 学习小组
- const与指针、成员函数、#define
- stm32 延时 delay us ms
- C++的指针
- 安卓c++虚函数解密
- js如何获取json数组的长度
- Python核心基础:之二:基础语法
- 9、Oracle: ROWNUM用法和分页查询总结
- c++多态
- HTML发展历史
- 静态IP配置
- 理解Guice--Java依赖注入框架