求教C高手

jasmine 2011-03-01 08:52:06
#include <stdio.h>
void main()
{
char c1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
printf("\tb%c%c\n",c4,c5);
system ("pause");
}
解释一哈第二个printf输出结果的由来
...全文
162 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wayne-Woo 2011-03-02
  • 打赏
  • 举报
回复
c4='\101',c5='\116'表示八进制的数
将其转换成十进制:
101:1*8^2 + 0*8^1 + 1*8^0 = 65 而65代表的是字符‘A’的ASCII码的值;
116:1*8^2 + 1*8^1 + 6*8^0 = 78 而78代表的是字符‘N’的ASCII码的值;
所以printf("\tb%c%c\n",c4,c5);输出的就是字符AN;
rach09 2011-03-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]

8进制转义字符。转换成ascii码值是65和78对应的字符时A和N
[/Quote]
最明确的解释
proghua 2011-03-02
  • 打赏
  • 举报
回复
The final two forms (\0oo and \xhh) are special representations of the ASCII code. To represent a character by its octal ASCII code, precede it with a backslash (\) and enclose the whole thing in single quotes. For example, if your compiler doesn't recognize the alert character (\a), you could use the ASCII code instead:

beep = '\007';

You can omit the leading zeros, so '\07' or even '\7' will do. This notation causes numbers to be interpreted as octal, even if there is no initial 0.

elegant87 2011-03-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]

8进制转义字符。转换成ascii码值是65和78对应的字符时A和N
[/Quote]
正解
赵4老师 2011-03-02
  • 打赏
  • 举报
回复
C++ Character Constants
Character constants are one or more members of the “source character set,” the character set in which a program is written, surrounded by single quotation marks ('). They are used to represent characters in the “execution character set,” the character set on the machine where the program executes.

Microsoft Specific

For Microsoft C++, the source and execution character sets are both ASCII.

END Microsoft Specific

There are three kinds of character constants:

Normal character constants


Multicharacter constants


Wide-character constants
Note Use wide-character constants in place of multicharacter constants to ensure portability.

Character constants are specified as one or more characters enclosed in single quotation marks. For example:

char ch = 'x'; // Specify normal character constant.
int mbch = 'ab'; // Specify system-dependent
// multicharacter constant.
wchar_t wcch = L'ab'; // Specify wide-character constant.

Note that mbch is of type int. If it were declared as type char, the second byte would not be retained. A multicharacter constant has four meaningful characters; specifying more than four generates an error message.

Syntax

character-constant :

'c-char-sequence'
L'c-char-sequence'

c-char-sequence :

c-char
c-char-sequence c-char

c-char :

any member of the source character set except the single quotation mark ('), backslash (\), or newline character
escape-sequence

escape-sequence :

simple-escape-sequence
octal-escape-sequence
hexadecimal-escape-sequence

simple-escape-sequence : one of

\' \" \? \\
\a \b \f \n \r \t \v

octal-escape-sequence :

\octal-digit
\octal-digit octal-digit
\octal-digit octal-digit octal-digit

hexadecimal-escape-sequence :

\xhexadecimal-digit
hexadecimal-escape-sequence hexadecimal-digit

flysnowhite 2011-03-02
  • 打赏
  • 举报
回复
转义字符。
delphiwcdj 2011-03-02
  • 打赏
  • 举报
回复
c4='\101',c5='\116'
这种格式是转义,表示八进制。例如,c4 == 64+1 == A的ascii,因此输出A
wizard_tiger 2011-03-02
  • 打赏
  • 举报
回复
将一个八进制ASCII码转换成字符输出。
wxwlll 2011-03-02
  • 打赏
  • 举报
回复
\t是制表符,b会原样输出
jinzhou520 2011-03-02
  • 打赏
  • 举报
回复
见所未见闻所未闻. 长见识了.
jackon1990 2011-03-01
  • 打赏
  • 举报
回复
这是八进制表示ASCII码,拿c4来说101(八进制)='65'=A,明白不?字符的另一种表示方式,我个人感觉这个不常用,呵呵,欢迎交流
MSOKD 2011-03-01
  • 打赏
  • 举报
回复
printf("\tb%c%c\n",c4,c5);

里多了个b
c4,c5的值是转义字符
所以输出AN
pengzhixi 2011-03-01
  • 打赏
  • 举报
回复
8进制转义字符。转换成ascii码值是65和78对应的字符时A和N
AutoLISP 培训教程 单元一:AutoLISP 主角潇洒登场 一. AutoLISP 是何方神圣? 1、AutoLISP 是 AutoCAD 的最佳拍檔! 2、AutoLISP 内含于 AutoCAD 软件内,不用另外花钱买! 3、AutoLISP 是强化 AutoCAD 最好、最直接的『程序语言』! 4、AutoLISP 易学、易用,即使不会程序设计的 AutoCAD 使用者,都能在最短的 时间内,写出令人惊 讶、赞叹的功能! 若说 AutoLISP 的出现,是替 AutoCAD 创造一片天的『最大功臣』,实不为过一点也不夸张! 5、AutoLISP 希望您去学习它、改善它、发挥它、享受它.真的!它的威力、魅力无穷! 二. AutoLISP 程序语言的特质分析: 学习 AutoLISP 是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写 出精彩漂亮的 AutoLISP 程序! 语法简单:不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而 有其独特的风格! 功能函数强大:除一般性的功能函数外,又拥有为数不少控制配合 AutoCAD 的特殊函数,再加上 AutoLISP 可直接呼叫执行所有 AutoCAD 的指令,以及掌握运用所有的 AutoCAD 系统变量,功能之强 大令人欣喜不已! 撰写的环境不挑剔:只要是一般的文书编辑软件都适用! 如:Windows 的记事本、PE2、PE3、DW3、 书中仙、汉书、EDIT....等 直译式程序: 不用再作编译,『即写即测、即测即用』,马上可以在 AutoCAD 中响应效果,马上就 有成就感! 横跨各作业平台:悠然自得,虽然 AutoCAD 有 DOS、Windows 版本之分但是 AutoLISP 却可在不改 写的原貌下,加载与执行! 三.撰写 AutoLISP 的动机? 1、欲强化 AutoCAD 原有指令时. 2、欲创造更有用的 AutoCAD 新指令. 3、欲简化繁琐的环境设定或绘图步骤时. 4、欲处理参数式绘图时. 5、欲做图面资料读文件、写文件. 6、欲做 AutoCAD 演示文稿展示时. 7、欲达到真正灵活掌控 AutoCAD 时. 8、欲提升自己跨上 AutoCAD 高手列车时. 四.AutoLISP 的效益评估? 1. 对公司负责人或设计主管而言: A. 也许某员工或干部花了 20 个小时撰写一个 AutoLISP 程序,表面上,这将近三天的时间,他连一张 图都没有画,甚至可能偶有发呆、沉思,若此程序一天可以替公司绘图部门节省 1 小时绘图时间,那 算一算,只要 20 天就抵销开发成本,而 20 天以后都是赚的,『用的愈久,省的愈多』! B. 若员工皆有此动力,在不影响正常工作,『鼓励』都来不及,那有『压抑』的道理,甚至还要派遣优 秀人员出去受训,学习更好的设计技巧与创意呢?! C. 千万不要因为您的不懂或压抑,SHOW 您的权威与 POWER,如此,不但对员工造成打击,甚至您可 能成为阻碍了公司计算机化进步的罪魁祸首 D. 当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥 无期,那倒不如求助于市面上已有的相关 AutoCAD 支持软件。 2. 对设计人员而言: A. 得到一笔提升绩效奖金呢? 当然,无形中,『AutoCAD 高手的封号』也将黄功力又往前迈出了一 大步,对个人的成长帮助匪浅,幸运的话,搞不好还可以袍加身,不亦乐乎!!! B. 『半桶水、响叮当』,千万不要因为会写 AutoLISP 程序而自傲、孤僻、嚣张起来,功力的增长, 只是让您有更多『服务他人、服务公司』的机会,若自恃过重,宁可不要! C. AutoLISP 程序功力的累进,是无远弗届的,千万不要『孤芳自赏』,『人外有人,天外有天』,也许 您觉得是『宝贝加三级』的程序,只是其它设计师基本程序中的一部份罢了! D. 既然 AutoLISP 是 AutoCAD 的『最大功臣』,当然不会轻易被舍弃,如此,您的学习,保证不会白 费! E. 『精益求精』、『虚心求教』、『用心学习、观摩』、『决心成为高手』 3.对程序本身而言: A. 少少的几行,却可能有『大大满意』的时候!!! B. 充份掌握了控制、 创造 AutoCAD 的 『尚方宝剑』 ,让您在 AutoCAD 的设计运作中 『得心应手』 , 享受无比的快乐与成就感!!! 五.如何有效的学习 AutoLISP ? 1、先由小程序着手,认识 AutoLISP 语法规定! 2、浏览所有的 AutoLISP 功能函数,重要的功能函数要熟记脑海,俗语说的好『一回生,二回熟』, 除非您不用心,否则没有学不好的道理!!! 3、要懂得偷懒:不要认为在绘图的过程中,繁琐的步骤是

69,370

社区成员

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

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