您的位置:首页 > 编程语言 > C语言/C++

c++:变量,数组和指针

2015-06-19 09:28 363 查看
指针是c++从c语言中继承过来的重要数据类型,它提供了一种较为直接的地址操作手段。

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型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: