当前位置: 代码迷 >> C语言 >> 重复赋值的指针和*(++p)........................
  详细解决方案

重复赋值的指针和*(++p)........................

热度:148   发布时间:2006-06-19 23:53:24.0
java还是在winux下跑比较好点,什么?没听说过winux?
太菜了,就是windows+linux啊!

char c='ab';其实是一个字节的
但是为什么可以这样弄呢?我也不知道,我以前都是认为这个是TC的BUG

----------------解决方案--------------------------------------------------------
以下是引用神vLinux飘飘在2006-6-19 23:53:24的发言:
java还是在winux下跑比较好点,什么?没听说过winux?
太菜了,就是windows+linux啊!

char c='ab';其实是一个字节的
但是为什么可以这样弄呢?我也不知道,我以前都是认为这个是TC的BUG

其实就是一个字节,我以前见过一个列表分析各编译器的不同,像这种情况不同的编译器有不同的处理

有的取第一个字符,有的取最后一个字符


----------------解决方案--------------------------------------------------------
俺明白了..原来字符常量是int型

在 C-FREE下 也可以是 char a='abcd'; 不过因为char变量是一个字节.就取一个吧.(纯粹实验理解.无资料根据)


----------------解决方案--------------------------------------------------------
#include "stdio.h"
int main(void){
int a = '12';
printf("a=%d,b=%d,%d\n",'1','2',a);
return 0;
}

输出:
a=49,b=50,12594
为什么会输出这个~看一下二进制就知道了
'a'= 49 = 110001
'b'= 50 = 110010
'ab'= 12594 = 11000100110010
原理也如SunShining所说,字符常量是int型的缘故


在gcc4.0下完成编译

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-20 04:33:44
baidu

等 级:新手上路
威 望:8
帖 子:3812
专家分:0
注 册:2005-11-4
  得分:0 
以下是引用神vLinux飘飘在2006-6-20 7:50:46的发言:
#include "stdio.h"
int main(void){
int a = '12';
printf("a=%d,b=%d,%d\n",'1','2',a);
return 0;
}

输出:
a=49,b=50,12594
为什么会输出这个~看一下二进制就知道了
'a'= 49 = 110001
'b'= 50 = 110010
'ab'= 12594 = 11000100110010
原理也如SunShining所说,字符常量是int型的缘故


在gcc4.0下完成编译

我发现你很笨!
这个问题很久以前就讨论过了,ChenMo好象也参与的
我记得是一个刚教C语言的老师来问个什么问题


----------------解决方案--------------------------------------------------------
以下是引用SunShining在2006-6-19 23:59:16的发言:
俺明白了..原来字符常量是int型

在 C-FREE下 也可以是 char a='abcd'; 不过因为char变量是一个字节.就取一个吧.(纯粹实验理解.无资料根据)

在C中,这叫多字节字符
----------------解决方案--------------------------------------------------------
当然,还有一个叫宽字符的
wchar_t c;
c=L'A';
----------------解决方案--------------------------------------------------------

以下是引用feng1256在2006-6-19 23:56:33的发言:

其实就是一个字节,我以前见过一个列表分析各编译器的不同,像这种情况不同的编译器有不同的处理

有的取第一个字符,有的取最后一个字符

这个我也在那里见过,好象是龙书
看编译器这里怎么做的,我发现C总讨论本来就一点不规范的东西
还要知道人家(编写人员)是怎么想的


----------------解决方案--------------------------------------------------------
不可能,这是标准C东西,不是不规范的东西,而是不常见的东西
----------------解决方案--------------------------------------------------------
  相关解决方案