c++:变量,数组和指针
2015-06-19 09:28
363 查看
指针是c++从c语言中继承过来的重要数据类型,它提供了一种较为直接的地址操作手段。
1 数据在内存中的地址
对于高级语言来说,我们是通过定义变量的方式来为数据分配内存空间,使得变量名与该变量所占内存空间相联系 的,然后通过变量名来操作数据,也就是访问数据所占的内存空间。
1.1 变量的地址
变量具有值和地址,要得到一个变量的地址,需要进行地址的运算(&)。比如:
12345678:3
1.2 一维数组在内存中的存储
一维数组在内存中是连续存储的。
输出结果为:
12345678
123456789abcd
注意:数组的下标切勿越界,否则会有麻烦的
1.3 多维数组在内存中的存储
二维数组是按行存储的。
2 指针和指针运算
2.1 定义指针并通过指针访问变量
我们可以通过变量名访问一个变量,也可以通过其内存地址来访问它,这就是指针。
T* name;
其中T就是类型,可以是int,float,char,short等内容;*便是该变量的类型为指针;name是定义的指针名称。
1 数据在内存中的地址
对于高级语言来说,我们是通过定义变量的方式来为数据分配内存空间,使得变量名与该变量所占内存空间相联系 的,然后通过变量名来操作数据,也就是访问数据所占的内存空间。
1.1 变量的地址
变量具有值和地址,要得到一个变量的地址,需要进行地址的运算(&)。比如:
#include<span style="font-family:SimSun;"><iostream></span> using namespace std ; <span style="font-family:SimSun;">int main() { </span>int a = 3; // a 是名字,3 是内容,地址可以假设是0x12345678 (通常就是32位地址<span style="font-family:SimSun;">)</span> cout<<&a<<<span style="font-family:SimSun;">':'<<a<<endl; //&a是取a的地址,变量名a表示内容 return(0); </span> <span style="font-family:SimSun;">}</span>输出结果是:
12345678:3
1.2 一维数组在内存中的存储
一维数组在内存中是连续存储的。
#include <iostream> #include <iomanip> using namespace std; void main() { char x[]="12345678"; char y[]="123456789abcd"; cout<<x<<endl; cout<<y<< endl; }
输出结果为:
12345678
123456789abcd
注意:数组的下标切勿越界,否则会有麻烦的
1.3 多维数组在内存中的存储
二维数组是按行存储的。
#include <iostream> using namespace std; int main() { int imax = 0; int i, j; int a[2][3] = { {1, 2, 3}, { 4, 5, 6} }; //二维数组定义并初始化。 cout<<"按行输出二维数组a的各元素的值如下:"<<endl; for( i=0; i<2; i++) { for( j=0; j<3; j++) { cout<<a[j]<<" "; } cout<<endl; } //求二维数组元素中的最大值 for( i=0; i<2; i++) { for( j=0; j<3; j++) { if (imax<a[i][j]) { imax=a[i][j]; } } } cout<<"二维数组元素中的最大值为"<<imax<<endl; return 0; }
2 指针和指针运算
2.1 定义指针并通过指针访问变量
我们可以通过变量名访问一个变量,也可以通过其内存地址来访问它,这就是指针。
T* name;
其中T就是类型,可以是int,float,char,short等内容;*便是该变量的类型为指针;name是定义的指针名称。
int p;//这仅仅是一个普通的变量 int* p;//int*也表示一种数据类型:int指针类型。所以p的类型为:int*类型,p所指向的类型为int型
相关文章推荐
- c++求数组中的最小(大)的n位数
- 设计模式----------------简单工厂模式
- Effective C++ 条款1
- c++函数必须先声明在使用
- c++命名空间使用
- Ubuntu下 vi编写第一个C语言程序
- 别被技术绑架
- 别被技术绑架
- C++ char*,const char*,string的相互转换
- cuda之一步一步爬
- 关于C++程序设计的基础核心之二:继承与派生的基本知识
- C语言文本处理
- 再开一篇关于C++程序设计基核心之一:引用,指针,符号优先级,函数参数传递
- C++返回值优化
- C++中的资源管理<转载>
- 【学习笔记】【C语言】类型说明符
- 用MFC写一个随机抽号的软件(VS2013)
- C++ explicit<转>
- 开始学习C++心得实例(5)
- C++double转化为string