分类目录归档:编程

PHP笔记 增强版

1.last_insert_id
在mysql数据库中,显示上一次插入的自增数据,一般
用于获取上次插入的id

2.rawurlencode
将字符编码成url格式,可提高适配性

3.array_map
对数组中所有值进行回调函数处理后生成新数组

4.mysql_real_escape_string
转义 SQL 语句中使用的字符串中的特殊字符,避免sql
注入

5.strip_tags
函数剥去 HTML、XML 以及 PHP 的标签,多用于显示文

6.strtotime
将任何英文文本的日期时间描述解析为 Unix 时间戳

7.2038.1.19
由于Unix时间戳的限制,将会产生下一波的千年虫

8.date_format
mysql函数,根据format 字符串安排date 值的格式,
多用于日期查询

9.feof
检测流上的文件结束符,多用于检测是否到文件末尾

10.highlight_string highlight_file
多用于高亮显示源代码

11.parse_ini_file
解析一个配置文件,并以数组的形式返回其中的设置

12.mcrypt
PHP加解密库

13.exif_read_data
从图片文件中读取EXIF头信息

14.imagestring imagecopymerge
GD库函数。给图片添加水印

15.jpGraph
PHP图表生成扩展,可用于生成验证码

16.保留字
mysql中默认有特殊意义的单词,一般在定义字段和库
名时应避免使用

17.加花括号
在sql语句或者echo时,常给变量加花括号,用于直接
获取变量值

18.单双引号混合
当语句中需要嵌套引用时,应使用单双引号混合的嵌套
方式

19.短标签
<?=?>,开启后可以简写,但移植性差

20.magic_quotes
自动转义开关,一些老版本的PHP默认开启,有一定的
检测必要

21.session_set_save_handler
可将session保存于数据库中

22.explain
调试Mysql语句时使用

23.var_dump
调试数组时使用,可查看数组值及结构

24.ob_start
打开输出缓冲,多用于优化PHP,添加缓存

25.cache_lite
PHP缓存扩展

26.xpath
XML查询语言

27.rest
用于web服务的含状态传输机制

28.phpDocumentor
PHP API文档生成工具

29.PHPUnit
PHP单元测试工具

30.CLI
php命令行模式,可使用php脚本直接运行命令行

MySQL笔记

1.字符串连接
concat()

2.子查询
where xx in ()

3.正则表达式
regexp

4.限制
limit

5.排序
order by

6.两者内
between xx and xx

7.去空格
trim()

8.别名
as

9.当前日期
now()

10.日期
data()

11.时间
time()

12.行数
count()

13.不同行
distinct

14.增
insert into 表名 values ()

15.删
delete from

16.查
select 列名 from 表名

17.改
update 表名 set 列名 = 值

18.空值
is null

19.分组数据
group by xx having xx(having类似where)

20.命令顺序
where,group by,having,order by,limit

21.数据库和数据库管理系统区别
数据库是保存在硬盘的文件,而DBMS如MYSQL,ORACLE等

22.子查询构建
两个不同的表相同的字段

23.内部联结
inner join xx on xx(也称等值联结)

24.外部联结
left outer join xx on xx (包含其余的行,从左边表选择所有行)

25.创建组合查询
union(使用union all不取消重复行)

26.MyISAM和InnoDB引擎区别
前者支持全文检索,速度快
后者支持事务处理

27.模糊匹配
LIKE

28.匹配符
* 0个或多个字符
_ 任意一个字符

29.主键与外键的区别
前者是一个表中唯一的
后者是另外一个表中为了与前者相匹配的

30.全文本搜索
fulltext(需要对表进行索引)
match()(指定被搜索的列)
against()(指定要使用的搜索表达式)

31.使表达式区别大小写
binary

32.视图
虚拟的表

33.存储过程
mysql语句集合

34.游标
cursor(功能类似指针,针对存储过程的结果集)

35.触发器
create trigger(在某个语句事件发生时自动执行)

36.事务处理
保证成批的MySQL操作完全执行或完全不执行

PHP手册笔记 续

1.自动加载类
function __autoload($classname)
{
}
自动加载与实例化类同名的文件
2.重载
改写继承后类的属性和方法
3.Traits
trait myTrait
{
}
use myTrait;
被不同的类都能调用到的方法集合,代替多重继承
4.回调函数
callback
当特定的事件或条件发生的时候,被作为参数调用的函数
5.类型约束
规定函数的参数类型
6.后期静态绑定
static::who();
用于在继承范围内引用静态调用的类
7.对象复制与赋值的区别
$a = $b;
$a = clone $b;
指向的内存空间不同
8.序列化
serialize()
unserialize()
使变量、数组、对象便于在网络中传输(如URL、POST、cookies、数据库等),url中还需调用urlencode()
9.命名空间
namespace
解决重名问题,调用公共空间的方式是直接在元素名称前加 \

 

PHP手册笔记

1.静态变量
static
多次调用只初始化一次
2.全局变量
global
可以全局调用
3.可变变量
$$
变量的值变为新变量名
4.输出类型和数组
var_dump()
可以完整输出数组的key和value
5.判断类型
is_type()
type为类型名,判断是否为此类型
6.新建数组
arr[] = value;
新建一个数组,如已存在,则顺延
7.引用
$a = &$b
改变a值同时改变b值
8.新建数组2
$arr = array(“a” => “aa”,”b” => “bb”,);
使用=>符号赋值
9.赋值cookies
setcookie()
多个值赋给同一个cookie可以是数组
10.魔术引用
magic_quotes_gpc
老版本php默认打开,会给提交的特殊字符加反斜杠,建议关闭
11.常量
define(“FOO”,”something”);
传统上常量标识符都为大写,常量不加$,5.3后新增的const定义常量必须在顶端
12.魔术常量
__FILE__
双下划线开头和结尾
13.对象
$object = new class();
对象是类的实例化
14.执行运算符
$output =`ls -al`;
反引号,执行命令,效果同shell_exec()
15.数组联合
$a + $b
把右边的数组加到左边后面,如果键名一致,则只取左边
16.类型运算符
instanceof
用于确定一个PHP变量是否属于某一类class的实例
17.流程控制的替代语法
if ($a==5):
echo ‘a is equal to 5’;
endif;
把左边的{改为:,把右边的}改为endxx;
18.函数调用
函数无需在调用之前被定义,除非函数是有条件被定义时
19.双冒号
::
访问父类的成员或者访问静态属性
20.对象运算符
->
访问类的成员对象,有别于数组运算符=>
21.特殊的字符串表达方式
heredoc
<<<EOF
EOF
nowdoc
<<<‘EOF’
EOF
两个EOF之间的值不转义
22.抽象类
abstract
只能被子类继承,不能被对象实例化,且抽象方法不能有具体实现
23.构造函数和析构函数
__construct()
__destruct()
前者新建类时初始化属性,后者销毁类时执行命令
24.php中抽象类和接口的概念和区别
不同点:
抽象类中可以有非抽象的方法而接口中只能够有抽象的方法!
一个类可以继承多个接口,而一个类只能继承一个抽象类!
接口的使用方式通过implements关键字进行,抽象类则是通过继承extends关键字进行!
共同点:
都类似于模版
25.final关键字
final
如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。
26.对象复制
clone object
复制对象
27.命名空间
namespace
只可用于常量、类、函数。类似目录

类Unix操作系统大观

Unix系:
FreeBSD
免费的自由软件,很多外国友人第一款使用的操作系统就是这个(因为windows是收费的)
AIX
IBM出品的小型机操作系统,很多银行、证券公司使用
Mac OS X
苹果公司自主研发的操作系统,目前的最新版本为10.9

Linux系:
Ubuntu
完全免费,连光盘也免费寄送,还有中国特别版的Ubuntu Kylin
Red Hat
L系最著名的发行版,也是Linux系的主要赞助厂商
CentOS
被誉为红帽子的克隆版,广泛被用于服务器领域
arch linux
拥有小巧精悍的特点,常用于配置并不是很高的服务器和开源硬件上
BackTrack
黑客的最爱,搭配无线解密软件,可以破解目前绝大多数的无线密码
Android
安卓理论上说也是linux的一个发行版,因为底层是linux,上层是java

100秒了解10种编程语言

C——
最经典的高级编程语言,至今仍被广泛使用并被认为是执行效率最快的高级编程语言
语法严谨,能够自由操作内存地址
对底层支持好,主流的操作系统均为C语言开发
理论上C++也是由C语言衍生出的

Java——
跨平台性好,利用虚拟机,几乎可以在任何平台上运行
学会了可以开发安卓应用和游戏
很多电梯和家电的开发语言都是Java
很多管理系统,都是用Java开发

C#——
搭配VS,可以快速开发出一个图形界面应用
内置很多的API控件,比如利用Web Brower控件,几分钟就能做一个简单的浏览器

PHP——
大量开源的项目,几乎不用编程就能搭建一个网站
网络上大部分的虚拟主机都是PHP的
可以内嵌命令行
通过现成的组件可以实现快速生成jpg、pdf等

SQL——
严格意义上只能算查询语言
语法简单,一般用于数据库查询
可以进行嵌套查询

Ruby——
日本人开发,所以广泛被作为日式游戏脚本语言
搭配rails可以进行web开发
语法简单易懂,几乎不需要注释

Python——
没有分号等多余符号
结构以缩进划分

Javascript——
严格意义上属于一款脚本语言,但因为node.js的兴起定义有所变化
语法晦涩难懂,但可以通过扩展如coffeescript使其代码更优雅
通用型脚本语言,支持几乎所有浏览器
由于代码在客户端运行,所以十分节省服务器资源
一般与后端脚本语言搭配使用

CSS——
严格意义上属于样式表语言,但是搭配扩展如Less可以支持逻辑、运算等
主要是实现脚本化的设计、布局等
语法简单易懂,可以实现丰富多彩的样式变化
一般和Javascript搭配使用

Go——
可以直接嵌入C语言
支持并发,多线程执行
轻量级,去除了其他编程语言冗余的功能

从HTML+CSS+JavaScript到MarkDown+LESS+CoffeeScript

相信大家对HTML+CSS+JavaScript的黄金组合一定不陌生,可以说,这些技术都是前端开发的必修课。随着技术的不断更新换代,越来越多的高效开发方案层出不穷。例如,用MarkDown替代HTML,用LESS替代CSS,以及用CoffeeScript替代JavaScript。这篇文章,就来探讨一下用MarkDown+LESS+CoffeeScript方案替代传统的HTML+CSS+JavaScript的黄金组合。

对于骨灰级网友来说,一定对HTML有着深厚的感情,因为早期的网页几乎都是用纯HTML编写的,虽然现在发展到了HTML5,但目前用得最多的,还是那些早期的语法。MarkDown,可以使HTML在编写文本内容时更加简洁高效,而在处理非文本内容,完全可以加入HTML语法形成混合编写。MarkDown的优点很多,比如可以自动处理特殊字符,例如&,在W3C验证中,链接中&符的转换往往是最容易忽略的;而对于电子邮件地址,MarkDown直接生成对应的转义字符,可以一定程度地防止邮件机器人的采集。

CSS的发展使网页支持更丰富的样式,但传统的CSS语法过于简单,即使发展到了CSS3,也根本算不上是一门编程语言。而通过LESS,可以扩展CSS的功能,使其支持变量、运算、函数等编程语言特有的高级功能。使用LESS时,可以先生成对应的CSS,也可以调用LESS的JS脚本在客户端编译,甚至可以用node.js直接在服务端编译。

最初看到CoffeeScript这个名词,是从豆瓣阅读上的一本付费CoffeeScript手册开始。CoffeeScript的优点,在于将JavaScript这种类C/Java语法的编写风格,转变为类似Ruby/Python语法的编写风格。这类语法风格的特点是:没有花括号,也没有分号,甚至没有变量和函数前缀,使用缩进来区分主从关系,这样就使语法更加简洁明了。

使用MarkDown+LESS+CoffeeScript的新兴组合方式编写网页,不但大大加快了网页开发的速度,同时使得程序更加优雅易读。相信不久的将来,一定会成为前端开发的最佳实践。

基于开源技术的视频网站开发构想

宽带的普及给我们的生活带来了极大的便利,其中之一,便是可以通过互联网收看电影、电视。诸如youtube、hulu、niconico等都是国外著名的视频网站,而优酷、土豆、爱奇艺等则在国内占据了大片江山。像Justin TV这类网站,可以说是视频网站中的一朵奇葩,将视频网站带入了在线直播的新纪元。

先来说说实现在线点播所需要的关键技术,一是视频转码,二是视频播放器。视频转码可以通过ffmpeg来实现,不但开源免费,还支持H.264高清转码,同时可以生成视频缩略图;而视频播放器,目前主流的有flow player、JW player等,但这里推荐一款国产的视频播放器——ckplayer,功能极其强大,支持rtmp直播,可以设置前置、后置、缓冲、暂停广告,支持视频拖放,带分享、关灯等功能,基本现在主流视频网站播放器有的功能,都可以通过此播放器实现。

接下来,如果想要实现Justin TV这种在线直播的功能,则需要另外架设流媒体服务器。收费的可以选择ADOBE的FMS,而开源的则有Red5、crtmpserver等。

使用MD5加密密码登录任意账号思路

最近百度网盘的账号密码泄露了,密码全部以MD5方式加密。有些人说MD5是不可逆的,危害不大。这篇文章就来分析一下有了账号的MD5密码,黑客可以做些什么?

首先,来讨论一下获得账号的MD5加密密码的三种主要途径:一是自己入侵网站的数据库,如果数据库中的密码用MD5加密了,自然就获得了MD5加密密码;二是从各种途径获得的泄露出来的网站数据库,比如这次的百度网盘数据库;三是知道明文密码,使用MD5加密工具进行加密。

现在假设已经获得了账号的MD5密码,由于MD5是不可逆的,但可以通过账号密码对照库进行破解。所谓的对照库,其实就是别人事先把收集的密码或者是黑客字典生成的密码进行加密,然后分别把加密前和加密后的密码一一对应起来存入数据库。然后,只要进行数据库查询,或者简单理解为搜索数据库中的MD5加密数据,就能找到对应的明文密码。

当然,这种方法不是万能的,有些强密码可能不在收集之列,所以无法破解。这时黑客就可以换一种思路。简单的说,现在网站验证登陆的方法,主要是对比用户在登陆框中输入的密码和数据库中对应的账号密码,如果一致,就登陆成功。而如果数据库中的密码是经过MD5加密的,这种对比的过程不会解密数据库中的MD5密码(因为MD5是不可逆的),而是用MD5加密用户输入的密码,这样就相当于对比两组MD5加密密码,一致则登录成功。

通过这一原理,我们就可以通过以修改cookie的方式,欺骗网站进行登录。这里,来解释一下cookie。说到cookie,不得不提一下session。这两种技术都可以用于验证用户登录,不同的是,session的数据是存储在服务器,当浏览器关闭后自动注销;而cookie是存储在客户端,可以长期保存。目前大多数网站为了用户登录方便,大多采用了cookie验证的方式。这样,就可以通过修改存储在本机的cookie,在不破解MD5密码的情况下,登录网站。大致过程是先注册一个账号登录此网站,获得网站的cookie模版,然后把里面的ID和密码字段替换成相应的ID和MD5加密密码。这样,下次登录时,网站会对照你本机cookie中的MD5密码和数据库中的MD5密码,如果密码没有修改过,则登录成功。

 

PHP源代码解密利器——dezender使用小贴士

dezender中文名黑刀,是一款由国人开发的php源代码解密工具。解密的算法部分是直接套用了国外牛人开发的程序,dezender则是在其基础上添加了GUI界面,简化了操作。

黑刀dezender
黑刀dezender界面

使用时可以多试试几个解密内核,相信总有一款适合你。如果解密出来函数出现乱码,可以试着勾选调用混淆函数库,这样能提高解密的成功几率。

一般dezender解密并不能达到100%完全解密,大概能解密90%-95%左右,剩下的部分可能会出现一些小bug。目前自己遇到的bug有:empty前的!运算符遗漏;Smarty模板赋值语句被替换为PHP变量。修正bug后基本就和未解密时一样正常运行。

 

使用Smarty模版引擎实现PHP前后端分离初探

虽然说smarty模版引擎已经是老物了。但由于当年的一时盛行,曾几何时,也被列为了PHP官方推荐的模版引擎。

如果现在进行一个新项目的开发,也许很少有人再会去用smarty,但对于维护老项目,以及进行二次开发,smarty还是有很大的市场。所以,对于一个PHPer来说,掌握好smarty,不失为一个基本功。

继续阅读使用Smarty模版引擎实现PHP前后端分离初探

传智播客PHP视频教程笔记1

弱数据类型

区分大小写

可与HTML混合编写

在服务器端执行

整形数据0开头为8进制,0x开头为16进制

php中,一个整数一般占用四个字节(与平台有关)

var_dump可以查看数据类型

PHP_INT_SIZE 本机上一个整数占用的大小

PHP_INT_MAX 整数最大数值

超出范围自动转换类型

符号位0表示正数,1表示负数

浮点数精度14位从左边开始非0数字算起,四舍五入

双引号内变量输出值,单引号内输出字符本身

双引号内输出转义符的值,单引号内输出转义符的字符本身

$b=$a++ 等价于$b=$a;$a=$a+1
$b=++$a 等价于$a=$a+1;$b=$a

||前为ture后不执行,&&前为false后不执行

or、and优先级比||、&&低(比=还低)

WEB设计笔记2

设计四要素:亲密性、对齐、重复、对比

色轮的对角为互补色

单色又叫色调

hgroup 标题分组

使用HTML5需要用CSS和JS语句解决兼容性

placeholder:表单显示输入提示

属性选择器:*包含、^开头、$结尾

指定子元素序号:nth-child和nth-last-child

使用border-radius添加圆角

使用border-image添加图片边框

使用* html解决针对IE6或更早版本的兼容性问题

属性选择符:[];子对象选择符:>;相邻选择符:+

overflow:auto解决背景无法撑开

_开头只有IE6能识别

解决高度自适应:overflow:hidden; zoom:1

使用clearfix撑开页面

区块不可使用height属性

以父元素为起始点设置position,父元素也需设置position值

IE6捉迷藏BUG使用position:relative或line-height:1.2解决

li加float后底部有空:a也加上float即可解决

img图片元素下多余空白BUG:img设为块级元素;float:left;垂直对齐

用id代替name做页内链接

无法设置边界时使用display:block

解决冲突可以用id代替important,兼容性更好

如果对象掉下去可以试着设置宽度

使用zoom:1触发ie的hasLayout属性

行内元素使用text-align居中,块级元素使用margin:auto居中

 

WEB设计工具:

JavaScript美化工具 jsbeautifiero

HTML5及CSS3特性支持检测:Modernizr

 

HACK总结:

#test{

color:red;

color:red !important;/ Firefox、IE7支持 */

_color:red; / IE6支持 */

*color:red; / IE6、IE7支持 */

color:red\9; / IE6、IE7、IE8支持 */

color:red\0; / IE8支持 */

}

*html #test /IE6支持 */

*+ html #test /IE7支持*/


论道HTML5

终于完整地看完了一本介绍HTML5的书籍。因为是比较前瞻性的内容,相关的书籍还是比较少的,而且大多是手册类的书籍。

一、HTML5

HTML5加入了很多创新的元素,总得来说使得开发变得更简单。以往需要用复杂JS实现的功能,都可以通过原生的标签实现了。不过由于HTML5还未正式发布,各大浏览器的兼容效果千差万别,还有待于观望。

HTML5可以说使语义更加规范了。加入了nav,article,header,footer等语义标签,更有利于搜索引擎的索引。同时,加入了针对多媒体的video和audio标签,虽然各浏览器对媒体的格式支持还有些区别,但不可否认,这是一个十分大的进步。

此外新加入的canvas画布,使WEB绘图更加方便和高效;新的离线存储机制,可以更简单地离线存储大数据;WebGL也使网页上的真3D成为可能。总之,HTML5毋庸置疑是一个跨时代的产物。

二、CSS3

CSS支持了一个原本需要JQuery实现的动画特效,也加入了使页面更美观的圆角、阴影、透明、倒影、渐变等效果。支持更多的伪类,以及网络字体和滤镜等功能。

三、WEB API

新增了方便的元素拖拽功能;针对如平板、手机等设备的API(联系人、地理信息、日历、消息等);XHR的升级版本等。

这些方便的API使得操作各种事件更加地方便简单,也扩展了HTML的功能,顺应了移动互联网的大潮。

四、Canvas 2D

以往绘图往往只能通过SVG、FLASH、VML等,这些都需要插件支持,而且对机器资源耗费也很大。现在,将传统开发中的Canvas移植到Web后,使得开发Web游戏、图像相关应用变得更加简单。

五、移动开发

现在的移动开发领域已经分成三种开发模式,Native App,Web App,以及混合两种的Hybird App。其中,后两者都要用Html5技术,结合CSS3和JavaScript,充分应用了最新的Web技术。

WEB设计笔记

图片添加alt属性

导航使用列表

标题使用h1~h6

文档使用p

字体大小使用百分比和关键词

横向导航使用float

0值可省略单位

div与span的区别:div换行,span不换行

使用float导致无法撑开外围时,外围也设置float代替指定高度

导航使用活字代替图片

使用background添加圆角

padding和margin的顺序为:四值上、右、下、左;两值上下、左右

margin补丁:display:inline

给布局设置最大、最小宽度

使用滑动伪栏制作自由伸缩的分栏

id唯一,class不唯一

PHP的高级技术

安全:

addslashes()过滤数据

stripslashes()恢复数据

php.ini中magic_quotes_gpc和magic_quotes_runtime自动添加和过滤数据

传递数据给system()或exec()时使用escapeshellcmd()

使用strip_tags()去掉HTML和PHP标记

使用htmlspecialchars()转换字符

加密电子邮件:PGP(收费版),GPG(免费版)

用户的基本身份认证:可以使用PHP代码或.htaccess

 

文件:

上传表单限制大小,使用“MAX_FILE_SIZE”隐藏域

默认上传文件保存在临时目录

touch创建文件,unlink删除文件

 

网络:

file_get_contents()从URL中读取信息

FTP传输中,ASCII传输文本文件,二进制传输过程不会修改文件

 

图像:

ImageMagick函数库:用于创建GIF

 

会话:

当使用完一个会话后必须将其注销

MySQL编程的注意事项

SQL语句不区分大小写,数据库和表的名称区分大小写

GRANT和REVOKE命令分别用来授予和取消MySQL用户的权限

用SHOW和DESCRIBE来查看数据库

BLOB类型支持任何数据,例如,图像或声音数据

MySQL中的字符串应该包含在一对单引号或双引号中,数字和日期并不需要引号

LIKE模式匹配: “%”匹配任何数量字符;“_”匹配一个字符

左关联用于查找不匹配行,找到添加NULL

SQL语句末尾必须加上分号

加快数据查询的方法:建立主键、添加索引、使用Prepared语句

PHP编程的注意事项

===  恒等  数据类型和值都相等

& 引用  不创建副本赋值

.  字符串连接符

单引号和双引号区别:双引号中的变量显示的是值,单引号显示的是变量名

@ 错误抑制操作符

` 执行操作符 将反向单引号内的命令当作服务器端的命令执行

PHP中没有delete函数,使用unlink()删除一个文件

intval()  将字符串转化为数字

extract()  将数组转换成标量变量

require()和include()的区别:前者调用失败返回致命错误,后者返回一个警告

函数不区分大小写,变量区分大小写

函数直接使用,变量使用前加$

private与protected的区别:前者不可继承,后者可继承

构造函数是在创建函数时初始化,析构函数是在销毁函数时执行一些操作或完成一些功能

重载:为相同的函数提供不同的功能

final:使函数不可重载

PHP不支持多重继承

throw  抛出异常信息

C语言学习回顾与记录

距离最初接触C语言,已经过去许久许久。还记得一开始是看谭浩强的一本绿皮书,上面号称销量800W本。不过后来听说他都是翻译一些国外的书,然后自己汇总了一些,所以也不是很NB。最近一直在看哈佛的CS50课程,讲师真是激情四射!几度看得兴奋起来,可毕竟有些细节方面没有说得很透彻。这次上技术宅社区一逛,真是收获不小,看到了一篇C语言的总结,总结得真得是细致入微。这里简单记录一下自己之前掌握的不牢固的一些知识点,用自己的语言和理解加以描述。

1.形参和实参的区别?

形参一般是一个函数里面作为例子存在的,本身没有值,有点像商场里的样品,不可以买卖。而实参是在调用这个函数时实际赋给它的值,就像卖出去的商品,是真正可以买卖的。

2.i++和++i的区别?

简单地说,前者是先赋值,后累加;而后者是先累加,后赋值。比如1++这个表达式的值是1,因为先赋值了,而++1是2,因为先累加了。

3.break和continue的区别?

break是中断,然后结束;而continue是中断,然后重新开始。此外,switch语句中不能用continue

4.返回值的作用?

返回值主要有两个作用,一是返回给系统,作为错误标识;二是返回给调用函数,作为一个数值。

5.二维数组的跳行与跳列?

假设二维数组a[3][3],跳一行是a+1,而跳一列是a[0]+1

6.什么是脱衣法则?

a[2] 变成 *(a+2) a[2][3]变成 *(a+2)[3]再可以变成 *(*(a+2)+3)

7.*p++ 和 (*p)++的之间的差别?

p表示地址,*p表示数值;*p++地址会变化,(*p)++数值会变化

8.如何进行四舍五入计算?

默认int类型是去掉小数点后面的数,所以要进行四舍五入可以用将int类型的值后面加上0.5

9.程序的运行顺序是?

一般是从上往下,但碰到函数要先跳到函数体中等待返回值,然后继续执行。

10.转义字符的使用?

\ddd或者\xhh,前者是反斜杠后跟三位8进制数,后者是x后跟两位16进制数