-------C/C++
文章平均质量分 52
计算机的小粽子
2019年本科毕业于湖南大学,目前任职字节跳动
展开
-
Stack Overflow
在Stack Overflow上看到这样一段代码int * foo(){ int a = 5; return &a;}int main(){ int* p = foo(); cout << *p; *p = 8; cout << *p;}运行结果:我的想法是:虽然函数调用结束,但是该内存并没有被销毁,由于p指针指向该内存并且后面并没有其它的函数原创 2017-08-22 13:00:51 · 459 阅读 · 0 评论 -
C语言register关键字—最快的关键字
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。因为,如果定义了很多register变量,可能会超过CPU的寄存器个数,超过容量。所以只是可能。#include <iostream>using namespace std;int f(){ register int i=0; for(int原创 2017-09-17 18:46:11 · 9150 阅读 · 0 评论 -
C语言常用基础位操作
1、使用下面的代码将最右边的1改变为0,假如没有1则结果为0(e.g.,01011000=>01010000): x & (x-1)此代码可以用来判断一个无符号的整数是否为2的幂,假如x & (x-1)==1,则x为2的幂,否则x不为2的幂2、相似地,下面的代码可以用来判断一个无符号的整数是否具备2n-1的格式(包括n=0、1) x & (x+1)3、下面的代码将隔离最右边的1,假如右边没有1转载 2017-09-10 21:43:20 · 244 阅读 · 0 评论 -
值得推荐的C/C++框架和库
值得推荐的C/C++框架和库 Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。* 文章网址 https://www.ezlippi.com/blog/201转载 2017-08-18 12:01:09 · 191 阅读 · 0 评论 -
局部变量作用域
考虑一个简单的问题#include<iostream>using namespace std;int i=0;void f(){ int i=i; cout<<i;}int main(){ f();}上述代码会生成什么??答案是未定义。因为局部变量i屏蔽了全局变量i,所以 int i=i 中右边的i并不是全局的i.那么如何使用全局i呢??第一种加上::#inc原创 2017-10-10 20:05:52 · 535 阅读 · 0 评论 -
第14 章 预处理器之 #define
# define当我们定义#define之后,程序在预处理阶段,会将该定义进行替换。 我们已经见过define的一般用法,比如:#define max 100000。接下来讨论更多有关#define指令的用法:1 替换文本:#define reg register#define CASE break;case如果文本过长,可以定义为多行:#define DEBUG_PRINT原创 2017-08-28 15:44:53 · 363 阅读 · 0 评论 -
c++对象的成员变量
c++对象的成员变量在进程内存中的存放位置一个典型的进程地址空间:对于我们自定义类型对象的成员变量来说,它在进程运行时,应该储存在哪里??Data区?堆区??栈区??我们猜想它在栈区,现在来验证一下。 先写如下代码:#include<iostream>#include<unistd.h>using namespace std;int s2=0;...原创 2017-08-12 23:07:23 · 1580 阅读 · 0 评论