栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言指针与二维数组

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言指针与二维数组

指针与二维数组 二维数组的地址
int  a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};

以上就是算二维数值地址的方法。

指向数组数值地址的表达方式:

&a[1][2];
a[1]+2;
*(a+1)+2;       //用这个最有B格。
&a[0][0]+1*4+2;        //用地址来计算

指向数组数值的表达方式:

a[1][2];
*(a[1]+2);
*(*(a+1)+2);            //用这个最有B格。
*(&a[0][0]+1*4+2);       //用地址来计算

解释:

a+1与a[1]分别为行==指针==和==列指针==,所表示的都为二维数组一行的元素的地址,行指针加“星号”转换为列指针,即为:a+1---->*(a+1);所以说,*(a+1)也是列指针。当表示地址时,就可以用以上表格的方式来表示。

指针的运用

先看代码:

#include
int main()
{
    int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
    int *p;
    for(p=a[0];p

这里指针p指向二维数组a的第一行的第一个元素,当运用p++时,则会指向下一个元素。

这里还有一句要提的话。由于p++遍历懂得元素都是挨边儿的,所以每遍历一次,地址(不对,不能说成地址,而是位移量)相加一,所以代码p-a[0])可以表示出各个元素的位置。非常方便。

字符串与指针

接着先上代码:

#include  
void main( )
 { char  *string=“I  love China!”;
    printf(“%sn”,string);
    string+=7;
            while(*string)
             {      putchar(string[0]);
                     string++;
              }
  }

这里*string来建立字符串指针,指向字符串“I love china ”,这里字符串可以看作一个字符串变量,来被指针取地址。

char  str[20];     
str=“I love China!”;   //这样是错误的  
char  *cp; 
cp=“I love China!”;    //利用指针指向数组

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/717975.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号