1.C语言在屏幕上显示内容

我们有两种方式从计算机获得信息:一是看屏幕上的文字、图片、视频等,二是听从喇叭发出来的声音。
 
让喇叭发出声音目前还比较麻烦,我们先来看看如何在屏幕上显示一些文字吧。例如在屏幕上显示“C语言中文网”:
  1. puts("C语言中文网");
这里有一个生疏的词汇puts,用来让计算机在屏幕上显示文字。
 
更加专业的称呼:
  1. "在屏幕上显示文字"叫做输出(Output);
  2. 每个文字都是一个字符(Character);
  3. 多个字符组合起来,就是一个字符序列,叫做字符串(String)。
 
puts 是 output string 的缩写,意思是”输出字符串“。
 
在C语言中,字符串需要用双引号" "包围起来,C语言中文网 什么也不是,计算机不认识它,"C语言中文网"  才是字符串。
 
puts 在输出字符串的时候,需要将字符串放在( )内。
 
在汉语和英语中,分别使用 。和. 表示一句话的结束,而在C语言中,使用 ; 表示一个语句的结束。puts("C语言中文网")表达了完整的意思,是一个完整的语句,需要在最后加上;,表示当前语句结束了。
 
总结起来,上面的语句可以分为三个部分:
  1. put( )命令计算机输出字符串;
  2. "C语言中文网"是要输出的内容;
  3. ; 表示语句结束。

①.puts("C语言中文网");的各种写法

在教程中我们讲到,puts("C语言中文网");可以输出“C语言中文网”几个字,那么,下面的写法对不对呢?
 
A) 用两个语句输出:
  1. puts("C语言");
  2. puts("中文网");
 
 
B) 换行
  1. puts("C语言
  2. 中文网");
  3. 或者
  4. puts
  5. ("C语言中文网");
  6. 或者
  7. puts
  8. (
  9. "C语言中文网"
  10. )
  11. ;
 
C) 带空格
  1. puts ("C语言中文网");
  2. 或者
  3. puts ("C语言中文网");
分析:
  1. 这些写法当中,只有 B 选项的第1种写法错误,其他都是正确的。
  2. C语言会忽略空白符,包括空格、Tab缩进、换行等,但是字符串不能换行。
 

②.输入法的选择

puts("C语言中文网");中的括号、双引号、分号都是英文符号,而且是半角的,所以在编写代码的时候需要切换到英文半角输入法。
 
C语言起源于美国,单词、标点、特殊符号都需要使用英文半角输入法才有效,否则无法识别,读者要注意区分中英文标点。
 
相似的中英文标点有:
中文分号;和英文分号;;
中文逗号,和英文逗号,;
中文冒号:和英文冒号:;
中文括号()和英文括号();
中文问号?和英文问号?;
中文单引号’‘和英文单引号' ';
中文双引号“ ”和英文双引号" "。
 

③.C语言程序的整体框架

 
puts 可以在显示器上输出内容,但是仅有 puts 是不够的,程序不能运行,还需要添加其他代码,构成一个完整的框架。完整的程序如下:
  1. #include<stdio.h>
  2. int main()
  3. {
  4. puts("C语言中文网");
  5. return0;
  6. }
 
第 1~3 行、第 5~6 行是固定的,所有C语言源代码都必须有这几行。你暂时不需要理解它们是什么意思,反正有这个就是了,以后会慢慢讲解。
 
但是请记住,今后我们写的所有类似 puts 这样的语句,都必须放在{ }之间才有效。
 

2.C语言转义字符

通过puts可以输出字符串,例如:
  1. puts("123abc");
"123abc" 对应的ASCII码值的八进制分别是 61、62、63、141、142、143,上面的代码也可以写为:
  1. puts("\61\62\63\141\142\143");
在C语言中,所有的ASCII码都可以用反斜杠 \ 加数字(默认是8进制)来表示,称为转义字符(Escape Character),因为\后面的字符都不是它原来的ASCII字符的意思了。
 
除了八进制,也可以用十六进制来表示。用十六进制表示时数字要以x开头。"123abc" 对应的ASCII码值的十六进制分别是 31、32、33、61、62、63,所以也可以写为:
  1. puts("\x31\x32\x33\x61\x62\x63");
 
注意:只能使用八进制或十六进制,不能使用十进制。
一个完整的例子:
  1. #include<stdio.h>
  2. int main(){
  3. puts("The string is: \61\62\63\x61\x62\x63");
  4. return0;
  5. }
运行结果:
The string is: 123abc
 
在ASCII码中,从 0~31(十进制)的字符为控制字符,它们都是看不见的字符,不能在显示器上显示,也没法书写,只能以转义字符的形式来表示。不过,直接使用ASCII码值记忆不方便,针对常用的控制字符,C语言又定义了简写方式,完整的列表如下:
转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
转义字符示例:
  1. #include<stdio.h>
  2. int main(){
  3. puts("C\tC++\tJava\nC first appeared!\a");
  4. return0;
  5. }
 
运行结果:
C       C++     Java
C first appeared!
同时会听到喇叭发出“嘟”的声音,这是使用\a的效果。
 
 
 

C语言初探的更多相关文章

  1. Squirrel语言初探(可以使用VC6或者MinGW编译)

    Squirrel语言初探 为啥我要关注Squirrel语言?原来Squirrel就很像我希望设计出的理想中的语言(当然也不完全符合).比如我觉得Lua的语法表述不清晰,累赘,于是想用C系语法来代替Lu ...

  2. GO语言初探

    1.GO使用UTF-8编码,纯Unicode文本编写. 2.$ go verson (windows) 3.windows下,需要设置go语言的环境变量,新建一个名为 GOROOT的变量,指向go的具 ...

  3. lua语言初探

    写在最前面 <cocos2d-x lua核心编程>是我首次购买电子书,坑的就不谈了,书里的代码部分基本上不是少空格就是多换行,让阅读变得十分困难. 所以又购买了实体书,加上看一些大佬视频和 ...

  4. [java]java语言初探 servlet+jsp架构

    <<head first java>> https://www.tutorialspoint.com/jsp/jsp_architecture.htm JSP Processi ...

  5. Ruby学习之对象模型

    这两周工作内容较多,平时自己也有点不在状态,学的东西有点少了,趁着现在还有点状态,赶紧复习一下之前学习的Ruby吧. Ruby是我真正开始接触动态语言魅力的第一个语言,之前虽然也用过且一直用perl. ...

  6. C: printf参数执行顺序与前置后置自增自减的影响

    起源: 今天在了解副作用side-effect的过程中,看到了下面的网页,把我带到了由printf引起的一系列问题,纠结了一整天,勉强弄懂. 第一个代码没什么好解释的.而第二个printf(" ...

  7. C++中的三种继承方式

    1,被忽略的细节: 1,冒号( :)表示继承关系,Parent 表示被继承的类,public 的意义是什么? class Parent { }; class Child : public Parent ...

  8. windows下的go语言的环境搭建和初探

    闲话不说,直入主题. 1.准备工具 a.windows下的Go语言开发安装包 官方下载地址:https://code.google.com/p/go/downloads/list b.Go语言中文官网 ...

  9. GO语言的进阶之路-初探GO语言

    GO语言的进阶之路-初探GO语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么我们需要一门新语言 Go语言官方自称,之所以开发Go 语言,是因为“近10年来开发程序之难 ...

随机推荐

  1. 微信支付之统一下单--JAVA版

    都说微信支付有些坑,都抱怨微信支付的文档太烂,一会APPId,一会商户id,还有appsecret,支付API秘钥让你傻傻分不清楚,还有这里大写那里小写,几种标准,让你眼花缭乱.没错,这就是很多技术团 ...

  2. 使用kindlegen实现自主文件发送

    最近入手一部kindle,本着努力学习的想法,想通过它来提高自己的英文阅读水平,不过,入手之后,发现用来看杂文的时间远大于看英文文章的时间,时间罪过,为了减轻自己的负罪感,决定要用它来实现最初的作用, ...

  3. PGI Compiler for OpenACC Output Syntax Highlighting

    PGI Compiler for OpenACC Output Syntax Highlighting When use the PGI compiler to compile codes with ...

  4. Linux中使用京东代码库JDCode创建私有Git仓库

    国外Git经常被墙,所以目光转向国内.目前,云存储真的是很热,有很多公司在做. 看了一下,CSDN,开源中国,淘宝,京东,Gitcafe都在搞.淘宝只支持SVN. JD号称提供1G免费空间,而且支持私 ...

  5. 使用Scribefire在博客中插入语法高亮

    效果如下, 文字1 int cool void main() { cout<<"hello world!"<<endl } 文字2 经过一番折腾,终于搞定了 ...

  6. 【TCP/IP详解 卷1:协议】 第18章TCP连接的建立与终止

    img { border: 1px solid black } T C P是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接. RST:复位连接,将连接重置,一般用在 ...

  7. 【summary】JQuery 相关css、ajax、数据操作函数或方法

    总结一下JQuery常用的函数方法,更加系统的整理一下. JQuery遍历的一些函数: 函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集 ...

  8. (转载)JProfiler试用手记

    JProfiler是一款Java的性能监控工具.可以查看当前应用的对象.对象引用.内存.CPU使用情况.线程.线程运行情况(阻塞.等待等),同时可以查找应用内存使用得热点,这里提供有几篇文章供参考:获 ...

  9. 奇舞js笔记——第0课——如何写好原生js代码

    摘要 1.好的代码职责要清晰,javscript不要用来操作样式: 2.API要设计的合理:通用性,适度的抽象(数据抽象,过程抽象),可扩展性: 3.效率问题:用好的.合适的算法(前端程序员要把自己当 ...

  10. mysql中exists、not exists的用法

    exists 关键字是判断是否存在的,存在则返回true,不存在则返回false, not exists则是不存在时返回true,存在返回false: 1. 最常用的if not  exists用法: ...