字符串加一是什么呢?这代码怎么写呢

T0Ols 2010-09-26 04:40:23
char a='img';
a+1 等于什么呢
这printf咋写啊?我咋越学越蒙了
...全文
2365 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiao5674836 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hai040 的回复:]
'img'类型是int
赋给char应该是'g',+1是'h'
[/Quote]
严重同意此观点
char a='img';结果和char='g';一致
所以最后结果为a='h';
至于输出嘛
鉴于a被定义为char类型
这个能怎么写lz应该知道了吧
泡泡 2010-09-28
  • 打赏
  • 举报
回复
顶,学习了
lovestefanie 2010-09-27
  • 打赏
  • 举报
回复
单双引号区别很大啊
T0Ols 2010-09-27
  • 打赏
  • 举报
回复
你这分就这么来的啊?要不就让别人调试 要不就让别人下你的东西[Quote=引用 28 楼 zhao4zhong1 的回复:]
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。

关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一……
[/Quote]
赵4老师 2010-09-27
  • 打赏
  • 举报
回复
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。

关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源http://zhao4zhong1.download.csdn.net/里面下载“适合程序员的键盘练习”
文刀劉Michael 2010-09-27
  • 打赏
  • 举报
回复
char 是字符型.
pengzhixi 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 mlee79 的回复:]
'img' 是实现依赖的, 对于M$的实现, 值为 ('i' << 16) | ('m' << 8) | 'g' ..
[/Quote]
up,如果输出字符的话,应该是最右边那个
T0Ols 2010-09-27
  • 打赏
  • 举报
回复
嗯 你说对了[Quote=引用 24 楼 zm19870528 的回复:]
情况可能是这样的,
lz弄错了题目,但是阴差阳错的让我们学到了一个知识点!
mark!
[/Quote]
screwzm 2010-09-27
  • 打赏
  • 举报
回复
情况可能是这样的,
lz弄错了题目,但是阴差阳错的让我们学到了一个知识点!
mark!
T0Ols 2010-09-27
  • 打赏
  • 举报
回复
为啥是mg 呢啊[Quote=引用 22 楼 caoyangnianhua2007 的回复:]
C/C++ code
#include <stdio.h>
void main()
{
char a[]="img";
printf("%s\n",a+1);
}



以上程序执行结果:mg
[/Quote]
caoyangnianhua2007 2010-09-27
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{
char a[]="img";
printf("%s\n",a+1);
}


以上程序执行结果:mg
T0Ols 2010-09-27
  • 打赏
  • 举报
回复
那如果是 字符串 img 加一呢啊 不是单个的[Quote=引用 18 楼 yukol 的回复:]
引用 3 楼 hai040 的回复:
'img'类型是int
赋给char应该是'g',+1是'h'

正解+1。
在此解释一下给楼主。。。
char为单字符类型, ‘img’为三个字符,只能取其一即最后一个字符‘g'。
'g'ASC码为103,+1后为104即‘h’。
最后补充基础知识,在c语言中,将一个字符存入,是将其的ASC码存入内存单元,即在内存中字符和数字的表现出来的形……
[/Quote]
oliver_wei 2010-09-27
  • 打赏
  • 举报
回复
楼上分析的很详细!
yukol 2010-09-27
  • 打赏
  • 举报
回复 1
[Quote=引用 23 楼 t0ols 的回复:]
为啥是mg 呢啊

引用 22 楼 caoyangnianhua2007 的回复:
C/C++ code
#include <stdio.h>
void main()
{
char a[]="img";
printf("%s\n",a+1);
}



以上程序执行结果:mg
[/Quote]
为什么是mg?
因为char a[]="img"; ;
a[]是字符数组,为a[]赋值为"img",会在内存单元中连续地址上存放了'i','m','g',如果假设'i'存放在1地址上,那么'm'会存放在2地址上,那么‘g'会存放在哪里呢?会存放在3地址上。
所以,printf("%s\n",a+1); 用%S输出字符数组a[],本来是从地址1开始输出(即从'i'开始输出),但是这里是a+1,所以会从‘m'开始输出,最终输出mg。如果是a+2,那么输出‘g'。
另外为楼住补充下,数组传值的基础知识。在printf("%s\n",a+1);,以a(即字符数组名) 作为 参数 传入 %s 中,会把字符数组的头地址作为传递的值(即前面假设的地址1)。
mLee79 2010-09-26
  • 打赏
  • 举报
回复
'img' 是实现依赖的, 对于M$的实现, 值为 ('i' << 16) | ('m' << 8) | 'g' ..

yukol 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hai040 的回复:]
'img'类型是int
赋给char应该是'g',+1是'h'
[/Quote]
正解+1。
在此解释一下给楼主。。。
char为单字符类型, ‘img’为三个字符,只能取其一即最后一个字符‘g'。
'g'ASC码为103,+1后为104即‘h’。
最后补充基础知识,在c语言中,将一个字符存入,是将其的ASC码存入内存单元,即在内存中字符和数字的表现出来的形式是一样的(都是数字),即可以对字符进行"+"."-"."*"."\"等四则运算,即对字符的四则运算既是对字符的ASC码的运算。
sanbailiushiliuye 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hai040 的回复:]
'img'类型是int
赋给char应该是'g',+1是'h'
[/Quote]
正解
mymtom 2010-09-26
  • 打赏
  • 举报
回复
楼主看看这个

#include <stdio.h>

int main(void)
{
printf("%s", "Hello, World" + 7);
return 0;
}

[Quote=引用楼主 t0ols 的回复:]
char a='img';
a+1 等于什么呢
这printf咋写啊?我咋越学越蒙了
[/Quote]
Thirty 2010-09-26
  • 打赏
  • 举报
回复
我也觉得题目有问题
Wuxian_Chao 2010-09-26
  • 打赏
  • 举报
回复
楼主题目有问题
加载更多回复(11)

70,005

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧