php中++i 与 i++ 的区别
1、++i 的用法(以 a=++i ,i=2 为例)
先将 i 值加 1 (也就是 i=i+1 ),然后赋给变量 a (也就是 a=i ),
则最终 a 值等于 3 , i 值等于 3 。
所以 a=++i 相当于 i=i+1 ,a=i
2、i++ 的用法(以 a=i++ ,i=2 为例)
先将 i 值赋给变量 a (也就是 a=i ),然后 i 值加 1 (也就是 i=i+1 ),
则最终 a 值等于 2 ,i 值等于 3 。
所以 a=i++ 相当于 a=i , i=i+1
3、++i 与 i++
a=++i 相当于 i++ , a=i
a=i++ 相当于 a=i , i++
4、++i 与 i++ 单独使用时,相当于 i=i+1
如果赋给一个新变量,则 ++i 先将 i 值加 1 ,而 i++ 先将 i 赋给新变量。
相关推荐
-
探讨++i与i++哪个效率更高
答案: 在内建数据类型的情况下,效率没有区别: 在自定义数据类型的情况下,++i效率更高! 分析: (自定义数据类型的情况下) ++i返回对象的引用: i++总是要创建一个临时对象,在退出函数时还要销毁它,而且返回临时对象的值时还会调用其拷贝构造函数. (重载这两个运算符如下) 复制代码 代码如下: #include <iostream>using namespace std; class MyInterger{public: long m_data;public: MyInter
-
浅析PHP中的i++与++i的区别及效率
先看看基本区别: i++ :先在i所在的表达式中使用i的当前值,后让i加1 ++i :让i先加1,然后在i所在的表达式中使用i的新值 看一些视频教程里面写for循环的时候都是写 ++i 而不是 i++,上网搜索了一下,原来有效率问题 ++i相当于下列代码 i += 1; return i; i++相当于下列代码 j = i; i += 1; return j; 当然如果编译器会将这些差别都优化掉,那么效率就都差不多了. 再给大家详细说下++i 与 i++ 的区别 1.++i 的用法(以 a=++
-
C++ 中引用与指针的区别实例详解
C++ 中引用与指针的区别实例详解 引用是从C++才引入的,在C中不存在.为了搞清楚引用的概念,得先搞明白变量的定义及引用与变量的区别,变量的要素一共有两个:名称与空间. 引用不是变量,它仅仅是变量的别名,没有自己独立的空间,它只符合变量的"名称"这个要素,而"空间"这个要素并不满足.换句话说,引用需要与它所引用的变量共享同一个内存空间,对引用所做的改变实际上是对所引用的变量做出修改.并且引用在定义的时候就必须被初始化. 参数传递的类型及相关要点: 1 按值
-
基于python中staticmethod和classmethod的区别(详解)
例子 class A(object): def foo(self,x): print "executing foo(%s,%s)"%(self,x) @classmethod def class_foo(cls,x): print "executing class_foo(%s,%s)"%(cls,x) @staticmethod def static_foo(x): print "executing static_foo(%s)"%x a=A(
-
PHP中isset与array_key_exists的区别实例分析
本文实例讲述了PHP中isset与array_key_exists的区别.分享给大家供大家参考.具体分析如下: 1.对于数组值的判断不同,对于值为null或''或false,isset返回false,array_key_exists返回true: 2. 执行效率不同,isset是内建运算符,array_key_exists是php内置函数,isset要快一些.请参考:PHP 函数实现原理及性能分析 3.当用isset访问一个不存在索引数组值时,不会引起一个E_NOTICE的php错误消息: 4.
-
Linux C中sockaddr和sockaddr_in的区别
Linux C中sockaddr和sockaddr_in的区别 struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址. 在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体. 网络中的地址包含3个方面的属性: 1 地址类型: ipv4还是ipv6 2 ip地址 3 端口 相应的,头文件有如下定义: include <netinet/in.h> struct sockaddr { unsigned short sa_family;
-
实例理解SQL中truncate和delete的区别
本文以一个简单实例为大家介绍了SQL中truncate和delete的区别,帮助大家理解,具体内容如下 ---创建表Table1 IF OBJECT_ID('Table1','U') IS NOT NULL DROP TABLE Table1 GO CREATE TABLE Table1 (ID INT NOT NULL, FOID INT NOT NULL) GO --插入测试数据 INSERT INTO Table1 VALUES(1,101),(2,102),(3,103),(4,104)
-
Jquery中offset()和position()的区别分析
本文实例分析了Jquery中offset()和position()的区别.分享给大家供大家参考.具体分析如下: 一.Jquery中offset() 获取匹配元素在当前视口的相对偏移. 总是计算相对于文档的位置,无论元素的父元素或祖先元素的position属性是什么. 返回的对象包含两个整形属性:top 和 left.此方法只对可见元素有效. 例如: <!DOCTYPE html> <html> <head> <style> p { margin-left
-
jQuery中.attr()和.data()的区别分析
$.attr()和$.data()本质上属于 DOM属性 和 Jquery对象属性 的区别. Jquery对象属性和DOM属性 一个简单的例子 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Jquery中.attr和.data的区别</title> </head> <body> <p id="app&q
-
node.js中grunt和gulp的区别详解
node.js中grunt和gulp的区别详解 自nodeJS登上前端舞台,自动化构建变得越来越流行.目前最流行的当属grunt和gulp,这两个光看名字挺像,功能也差不多,不过gulp能在grunt这位大哥如日中天的境况下开辟出自己的一片天地,有着她独到的优点. 易用 Gulp相比Grunt更简洁,而且遵循代码优于配置策略,维护Gulp更像是写代码. 高效 Gulp相比Grunt更有设计感,核心设计基于Unix流的概念,通过管道连接,不需要写中间文件. 高质量 Gulp的每个插件只完成一个功能
-
基于js中this和event 的区别(详解)
今天在看javascript入门经典-事件一章中看到了 this 和 event 两种传参形式.因为作为一个初级的前端开发人员平时只用过 this传参,so很想弄清楚,this和event的区别是什么,什么情况下用什么比较合适. onclick = changeImg(this) vs onclick = changeImg(event) <img src='usa.gif' onclick="changeImg(event)" /> <scrip
-
tomcat自定义Web部署文件中docBase和workDir的区别介绍
本文主要介绍的是tomcat自定义Web部署文件中docBase和workDir的区别,下面话不多说,直接来看详细介绍. 首先看这段tomcat配置文件: <Context path="/web" reloadable="false" docBase="D:\CAPRuntime\src\main\webapp" workDir="D:\CAPRuntime\src\main\webapp"/> 其中的docBas
随机推荐
- 解析AngularJS中get请求URL出现的跨域问题
- Oracle知识整理笔记
- nagios 分发文件实现代码
- ASP.NET MVC 4使用PagedList.Mvc分页的实现代码
- 动态刷新 dorado树的js代码
- JavaScript中的迭代器和生成器详解
- PHP+jQuery+Ajax实现用户登录与退出
- Ajax中的循环方案
- 浅谈SQL Server 2016里TempDb的进步
- Android自定义View绘图实现渐隐动画
- 浅谈C++内存分配及变长数组的动态分配
- PHP实现利用MySQL保存session的方法
- Ping命令的工作过程及单向Ping通的原因
- 关于Java中你所不知道的Integer详解
- 30分钟快速带你理解iOS中的谓词NSPredicate
- 17道题让你彻底理解JS中的类型转换
- 基于Oracle多库查询方法(分享)
- 浅谈SpringMVC中Interceptor和Filter区别
- 易语言通过监控图标实现QQ消息监控的代码
- 解决MySql客户端秒退问题(找不到my.ini)