| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5121 人关注过本帖
标题:重复赋值的指针和*(++p)........................
只看楼主 加入收藏
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
java还是在winux下跑比较好点,什么?没听说过winux?
太菜了,就是windows+linux啊!

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

淘宝杜琨
2006-06-19 23:53
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
以下是引用神vLinux飘飘在2006-6-19 23:53:24的发言:
java还是在winux下跑比较好点,什么?没听说过winux?
太菜了,就是windows+linux啊!

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

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

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


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-06-19 23:56
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
俺明白了..原来字符常量是int型

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


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-06-19 23:59
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
#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 07:50
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-20 12:33
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分: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语言的老师来问个什么问题


偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-06-20 12:43
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
收藏
得分:0 
以下是引用SunShining在2006-6-19 23:59:16的发言:
俺明白了..原来字符常量是int型

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

在C中,这叫多字节字符


偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-06-20 12:46
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
收藏
得分:0 
当然,还有一个叫宽字符的
wchar_t c;
c=L'A';

偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-06-20 12:48
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用feng1256在2006-6-19 23:56:33的发言:

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

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

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


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-06-20 12:50
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
收藏
得分:0 
不可能,这是标准C东西,不是不规范的东西,而是不常见的东西

偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-06-20 12:55
快速回复:重复赋值的指针和*(++p)........................
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016881 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved