首页 > 其他分享 >C语言自增++放前面还是后面?

C语言自增++放前面还是后面?

时间:2023-09-03 13:23:45浏览次数:30  
标签:自增 temp ++ 后面 C语言 优化

《STL标准程序》里边一直提到前置比后置效率更高。关于此的一点个人理解记录下来。

a++:加的过程中要先产生一个临时变量temp,加1之后的值赋给temp,然后你可以使用a(在if、for、while..中),最后再把temp的值assign给a。

++a:这个就是直接在a上加1了,然后改怎么用,就怎么用。

归根结底:二者的性质(先用还是先加)决定了其性能。

但是现在一般的编译器都会自动帮你优化,放前或后面都会优化成一样的了

标签:自增,temp,++,后面,C语言,优化
From: https://www.cnblogs.com/yuyanc/p/17674889.html

相关文章

  • C++算法之旅、05 基础篇 | 第二章 数据结构
    常用代码模板2——数据结构-AcWing笔试用数组模拟而不是结构体使用结构体指针,newNode()非常慢,创建10万个节点就超时了,做笔试题不会用这种方式(优化是提前初始化好数组,但这样跟数组模拟没区别了,而且代码量很长)单链表(数组)使用两个数组,e存储val,ne存储next。空节点next用-1表......
  • 《C++并发编程实战》读书笔记(2):线程间共享数据
    1、使用互斥量在C++中,我们通过构造std::mutex的实例来创建互斥量,调用成员函数lock()对其加锁,调用unlock()解锁。但通常更推荐的做法是使用标准库提供的类模板std::lock_guard<>,它针对互斥量实现了RAII手法:在构造时给互斥量加锁,析构时解锁。两个类都在头文件<mutex>里声明。std::......
  • 计算机萌新的成长历程——初识C语言16
    大家好,很高兴又能跟各位朋友见面了,前面我们花了两篇内容来探讨操作符的相关内容,今天咱们要开始探讨新的内容了——常见关键字。对于常见关键字,我是这样理解的——C语言中自带的可以直接使用的字符,比如咱们的数据类型:int、char、short、long、longlong、float、double……又比如咱......
  • msvc++中的预编译头文件pch.hpp和stdafx.h
    预编译头文件在VisualStudio中创建新项目时,会在项目中添加一个名为pch.h的“预编译标头文件”。(在VisualStudio2017及更高版本中,该文件名为stdafx.h)此文件的目的是加快生成过程。应在此处包含任何稳定的标头文件,例如标准库标头(如)。预编译标头仅在它或它包含的任何......
  • C++引用
    首先引用是什么?在教程里说引用就是起别名。在我学过这一部分后觉得引用其实就是属于指针,有点像是指针的语法缩写。怎么说呢,我认为就两点三种传递引用是什么,引用的本质1、三种传递值传递不改变实参,地址传递和引用传递改变实参1#include<iostream>2usingnamespaces......
  • 汉诺塔问题C语言递归
    (汉诺塔问题C语言递归)什么是汉诺塔问题汉诺塔问题是一个经典的问题。汉诺塔(HanoiTower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另......
  • 通过c语言来实现斐波那契数列
    斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列,像这样的:0、1、1、2、3、5、8、13、21、34、55......这个数列从第3项开始,每一项都等于前两项之和。以下通过c语言来实现这个程序#include<stdio.h>//1123581321345589intmain(){ /......
  • 如何使用C++11原子操作实现自旋锁
    什么是自旋锁?C++自旋锁是一种低层次的同步原语,用于保护共享资源的访问。自旋锁是一种轻量级的锁,适用于短时间的资源锁定。自旋锁的特点:当一个线程尝试获取已经被另一个线程占有的自旋锁时,这个线程会进入一个循环(自旋),在这个循环中它不断地检查锁是否已经被释放。如果锁已经被释放,那......
  • 简单理解c语言指针
    &p(取地址)P*p(间接寻址) 假设p指向整数型变量a,那么可以理解为p等同于a的地址。*是间接寻址运算符,对p进行操作,找到p这个地址中所对应(放的)东西。也就是说,*p就是a。做个比喻,将*理解成取平方,而操作数p是地址,那么p的平方就是a,如2的平方就是4。(不过这里其实p不像是常量而更像变量x,......
  • C语言数组(9)--- 数组名(2)
    一.导入我们上篇文章讲了一维数组的数组名,接下来我们将介绍二维数组的数组名,我们先来猜一下以下代码执行的结果是多少:#include<stdio.h>intmain(void){ intarr[3][4]; intsz=sizeof(arr); printf("%d",sz); return0;}A.3B.4C.12D.48答案:D,解析:我们之前说过二维数组......