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

       指针是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型





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值