黑马程序员技术交流社区

标题: 一个关于数组的问题 [打印本页]

作者: xiaodixing    时间: 2014-5-29 00:30
标题: 一个关于数组的问题
本帖最后由 xiaodixing 于 2014-5-29 21:41 编辑

本帖最后由 z82454642 于 2014-3-11 23:34 编辑

有一个字符串数组  
str    表示第i+1个字符串
str[j] 表示第i+1个字符串的第j+1个字符

str+j 表示什么意思呢
是表示str[i+j]么?


作者: 夏沫的黄昏′    时间: 2014-5-29 13:23
通过 下面这段代码给你讲讲指针吧

char a[10][10]={"12","34","56","78"};
     char *str = *(a+1);
     puts(str);
     //输出34
*str = *(a+1) 意思就是  str指向了 a+1  的地址
strcpy(str,a[1]);  可以这样理解  但实际上是指针的变化
所以str输出的是a[1];
     str = str + 1;
     puts(str);
     //输出4
str = str+1  代表的是  
str指向的是这个字符串的首地址 也就是3的地址
str+1 就是 指针指向了3的下一个位置 也就是4
。。。
指针难以清晰的讲述  
只能说到这里了
觉得有用的话就给点分
作者: a1130003724    时间: 2014-5-29 15:27
学习学习   
作者: mingjixiaohui    时间: 2014-5-29 17:53
for(i=0;i<=100-1;i++)                //100个数进行循环,其中i表示“第几个”
   a[j]=a[i]                        //将第i个元素赋值给a[j]保持
printf("第%d个的元素是:%d",i,a[j]);
按你说的str+j 能加吗?i表示“第几个”,j也是个存数的变量,不能加的。
望指教
作者: 但愿''专注..    时间: 2014-5-30 21:59
str表示i+1+j个字符串?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2