A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© z82454642 中级黑马   /  2014-3-4 16:03  /  1404 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

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

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

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 apple_victor 于 2014-3-4 16:31 编辑

回复 使用道具 举报
首先回答你,str[i]+j不是表示str[i+j],两者没有必然的联系
str[i]+j:str[i]表示字符串组str[i]第i+1个值,而str[i]+j只是表示str[i]字符串和j合并起来形成的一个新字符串。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 脸皮猴 于 2014-3-4 21:59 编辑

回复 使用道具 举报



str[i]+j 表示什么意思呢
假如你的str是一个二维字符串数组,那么str[i]其实相当于存放你第i+1个字符串地址的一个指针!所以 str[i]+j 代表的是str[i]这个指针变量向后移动了j,也是指向了一个字符串。具体是指向哪里,要看你的j的值,要是超出了你的数组范围那么就是指向未知的字符串了。
假如你的str是一个一维字符串数组那么,str[i]+j代表str这个字符串的第i+1个字符的ASC码值和j的和组成的一个新字符。比如你的str是一个字符‘A’, j = 32,那么str[i]+j就等于‘A’的ASC码值 +32 = 97 ,而 ‘a’的ASC码值就等于97,那么str+j 就是新的字符 ‘a’;
而str[i+j]代表什么勒?
假如你的str是一个二维字符串数组,那么str[i+j]代表的也是一个指向一个字符串的指针,假如没有超出数组范围,那么这个指针就指向你的第i+j+1个字符串!(前提是不超出你的数组范围)
假如你的str是一个一维字符串数组,那么str[i+j]代表的是你的字符串数组str的第i+j+1个字符元素(前提是不超出你的数组范围)


所以!str[i]+j 和str[i+j]完全不是一个意思!不管你的数组是一维还是二维!

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马