社区
C++ Builder
帖子详情
新问题啊, 很基本的C, 但却很晕的...
alloutoflove
2007-09-13 05:24:36
今天被这个问题搞晕了. 代码如下:
char *buf = "123456";
char b;
b = *(buf++ );
问题是b的值是多少?
想当然地以为b应该等于2,不过我发现事实上错了, 在VC6/VC2005/bcb6的编译器得出的结果都是1.
意思就是
b = *( buf++ );
和
buf++;
b = *buf;
并不一样...
请问一下有没有什么依据可查, 为什么编译器要这样?
...全文
110
4
打赏
收藏
新问题啊, 很基本的C, 但却很晕的...
今天被这个问题搞晕了. 代码如下: char *buf = "123456"; char b; b = *(buf++ ); 问题是b的值是多少? 想当然地以为b应该等于2,不过我发现事实上错了, 在VC6/VC2005/bcb6的编译器得出的结果都是1. 意思就是 b = *( buf++ ); 和 buf++; b = *buf; 并不一样... 请问一下有没有什么依据可查, 为什么编译器要这样?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
alloutoflove
2007-09-14
打赏
举报
回复
我知道楼上所说的道理, 可能是我理解不太清楚吧, 所谓的先参与运算, 就是指不管是否有括号, 先参与本条语句的运算, 并不是按我想像的括号中是一条语句...
额....结帖吧..
n27741
2007-09-14
打赏
举报
回复
还是帮你复习一下吧 我也是翻了一下书的
int i = 0;
int j = i++; //j = 0
j = ++i; //j = 2
i++ 是先参与运算 然后再自增
++i 是先自增 然后再参与运算
just so so :)
n27741
2007-09-14
打赏
举报
回复
char *buf = "1234";
char b ;
b=*(++buf);
ShowMessage(b);
这样写就没问题了
++buf 是先移动指针 然后再取值
buf++ 是先取值 再移动指针
kmfangxun
2007-09-13
打赏
举报
回复
//-----------------------------
b = *(buf++ );
等价于
b=*buf; //先赋值
buf=buf+1; //后加
//-----------------------------------------------------------------------------
如果
b = *(++buf );
等价于
buf=buf+1; //先加
b=*buf; //后赋值
//-----------------------------------------------------------------------------
c语言.h文件实例,C 语言项目中.h文件和.c文件的关系
那是一个被 遗忘的年代,在编译器只认识.c(.cpp))文件,而不知道.h是何物的年代。那时的人们写了很多的.c(.cpp)文件,渐渐地,人们发现在 很多.c(.cpp)文件中的声明语句就是相同的,但他们却不得不一个字一个字地重复地将这些内容敲入每个.c(.cpp)文件。但更为恐怖的是,当其中 一个声明有变更时,就需要检查所有的.c(.cpp)文件,并修改其中的声明,啊~简直是世界末日降临!终于,...
c语言中.c与.h文件详解
原文链接:http://blog.csdn.NET/yangtalent1206/article/details/6830051 很多人对C语言中的 “文件包含”都不陌生了,文件包含处理在程序开发中会给我们的模块化程序设计带来很大的好处,通过文件包含的方法把程序中的各个功能模块联系起来是模块化程序设计中的一种非常有利的手段。 文件包含处理是指在一个源文件中,通过文件包含命令将另一个源文件的
C C语言中 *.c和*.h文件的区别!
一个简单的
问题
:.c和.h文件的区别学了几个月的C语言,反而觉得越来越不懂了。同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢? 2楼:子程序不要定义在.h中。函数定义要放在.c中,而.h只做声明.否则多引用几次,就会发生函数重复定义的错误。 3楼:.h只做声明,编译后不产生代码4楼:这样做目的是为了实现软件的模块化使软件结...
详解C程序开发中 .c和.h文件的区别
一个简单的
问题
:.c和.h文件的区别 学了几个月的C语言,反而觉得越来越不懂了。同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢? 2楼: 子程序不要定义在.h中。 函数定义要放在.c中,而.h只做声明.否则多引用几次,就会发生函数重复定义的错误。 3楼: .h只做声明,编译后不产生代码 4楼: 这样做目的是
.c 文件和 .h 文件的区别 以及 链接出错的
问题
(一)
关于两者以前的关系,要从N年以前说起了~ long long ago,once aupon a time ....... 那是一个被遗忘的年代,在编译器只认识.c(.cpp))文件,而不知道.h是何物的年代。 那时的人们写了很多的.c(.cpp)文件,渐渐地,人们发现在很多.c(.cpp)文件中的声明语句就是相同的,但他们却不得不一个字一个字地重复地将这些内容敲入每个.c(.cpp)文件。但更
C++ Builder
13,871
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章