C/C++
文章平均质量分 77
王先生的副业
屌丝,爱做梦的屌丝。
展开
-
C程序的执行过程——《C和指针》读书笔记
在ANSI C的任何一种实现中,存在两种不同的环境,第一种:翻译环境(translation environment),在这个环境里源代码被转换为可以执行的机器指令第二种:执行环境(execution environment)它用于执行实际代码。翻译翻译部分由几个步骤组成。组成一个程序的每个(有可能由多个)源文件通过编译过程转换为目标代码(Object code)。然后,各个目标文件由链接器(lin原创 2017-09-07 16:34:50 · 306 阅读 · 0 评论 -
面试宝典(PART I)位运算(I)求X和Y的平均数
使用位运算实现取平均数实例代码#include <cstdio>using namespace std;int func(int x,int );int main(){ printf("result=%d",func(729,271)); return 0;}int func(int x,int y){ return (x&y)+((x^y)>>1);}输出结果:原创 2017-10-13 21:34:34 · 289 阅读 · 0 评论 -
C/C++使用NotePad++DIY一个IDE
需要的材料:NotePad++TDM_GCC 下载地址: https://sourceforge.net/projects/tdm-gcc/files/latest/download?source=top3_dlp_t5步骤:安装TDM_GCC 环境变量会自动添加 此时使用gcc(不能直接编译c++文件,需要加入参数`-lstdc++` )g++c++这三种命令来编译文件。 其他步骤参原创 2017-11-08 21:47:18 · 495 阅读 · 0 评论 -
面试宝典(PART IV)数据对齐问题
示例代码:#include <cstdio>#include <cstring>using namespace std;class B{private: bool bool_a; int int_a; bool bool_b;};class C{ int int_a; bool bool_a; bool bool_b;};int main()原创 2017-10-14 11:47:58 · 223 阅读 · 0 评论 -
C++类的定义
至今我一直都是主攻java,C++只是了解了一些基本的语法,没有涉及类等高级特性,鉴于JVM是使用C++编写的所以如果想深入了解JVM必须掌握C++。 定义一个C++的类:#include <cstdio>using namespace std;class MyClass{private ://私有部分 int num1=0; int num2=0; int putNu原创 2017-10-16 21:18:51 · 308 阅读 · 0 评论 -
C++ vector类模板和auto关键字
vector类模板定义和初始化 方法 含义 vectorv1 v1是一个空的vector,它潜在的元素是T类型,执行默认的初始化 vectorv2(v1) v2包含v1的所有元素的副本 vectorv2=v1 等价于v2(v1),v2中包含有v1所有元素的副本 vectorv3(n,val) v3包含了n个重复的元素,每个元素的值都是val vectorv4原创 2017-10-16 22:18:39 · 2367 阅读 · 0 评论 -
C语言里的符号重载《C专家编程》
在C语言中的符号重载 项目 价格 static 1: 在函数内部,表示该变量的值在各个调用间一直保持延续性。2:在函数这一级,表示该函数只对本文件可见。 extern 1:用于函数的定义,表示全局可见(属于冗余)。2:用于变量,表示它在其他地方定义。 void 1:作为函数的返回类型,表示不返回任何值。2:在指针的声明中,表示通用的指针类型。3:位于参数列表中,表示没有原创 2017-09-09 10:52:36 · 340 阅读 · 0 评论 -
C++初始化字符串
标准库提供了string表示可以变长的字符序列,使用string类型必须首先包含string头文件,作为标准库的一部分,string定义在命名空间std中, 方式 含义 string s1 默认初始化,s1是一个空串 string s2(s1) s2是s1的副本 string s2=s1 等价于s2(s1),s2是s1的副本 string s3(“value”)原创 2017-09-12 09:54:14 · 3123 阅读 · 0 评论 -
C++,标准库类型vector
标准库类型vector表示对象的集合,其中所有对象的类型都相同。 vector是一个类模板。初始化vector的方法 方式 含义 vector< T > v1 v1是一个空vector,它潜在的元素是T类型,执行默认的初始化 vector< T > v2(v1) v2中包含有v1所有元素的副本 vector< T >v2=v1 等价于v2(v1),v2中包含的有v1所原创 2017-09-12 10:20:43 · 237 阅读 · 0 评论 -
2017/9/13腾讯的机试题(拼凑硬币)
问题201720172017年999月131313日: 腾讯有一道机试题: 大概意思是: 小QQQ非常富有,拥有非常多的硬币,小QQQ的拥有的硬币是有规律的,对于所有的非负整数KKK,小QQQ恰好各有两个数值为2k2k2^k,的硬币,所以小Q拥有的硬币是1,1,2,2,4,4…1,1,2,2,4,4…1,1,2,2,4,4\dots,小QQQ卖东西需要支付nnn元钱,请问小QQQ想知道有...原创 2017-09-14 10:33:57 · 5103 阅读 · 2 评论 -
Java 没有无符号数
C语言的无符号数C语言里的int一般分为unsigned int和singed int <=>int 下面是我写的一段测试代码:#include <cstdio>using namespace std;int main(){ unsigned int u_a=0; signed int s_a=0; int n_a=0; printf("u_a=%u\n",u_a)原创 2017-10-04 21:58:53 · 3099 阅读 · 0 评论 -
C语言的const和指针
修饰变量:int const a;cont int a;这两者是等价的。代表不可以改变的常量。 const修饰的是a代表a不可作为左值。修饰指针1:常量指针const int *b=& base;或者int const *c=& base;2:指针常量 int * const d=&base1;此时要求const 在*号前面。3:指向常量的常指针int const* const e=&bas原创 2017-09-20 22:55:07 · 308 阅读 · 0 评论 -
C语言的数组和指针_《C专家编程》读书笔记
数组和指针并不是一回事。什么是定义,什么是声明定义: 特点:只能出现在同一个地方 作用:确定对象的类型并且为其分配内存,用于创建新的对象,例如:int my_array[100];声明 特点:可以出现多次 作用:描述对象的类型,用于指代其他地方定义的对象,例如:extern int my_array[];如何区分定义和申明 声明相当于普通的声明:它原创 2017-09-08 14:40:46 · 364 阅读 · 0 评论 -
我的计划(I)
最近两个月第一个月《算法竞赛入门经典I》 第二个月《算法竞赛入门经典II》 在这两个月刷十道OJ。使用C/C++, java就看看语法,没有项目就先不忙 当然经常写博客来记录自己的学习。原创 2017-09-10 08:59:23 · 205 阅读 · 0 评论 -
C 函数被调用时发生了什么:过程活动记录
C 语言自动提供的服务之一就是跟踪调用链——哪些函数调用了哪些函数,当下一个return语句执行后,控制将返回何处等。解决这个问题的经典机制是堆栈中的活动记录。当每个函数被调用时,都会产生一个过程记录(或者类似的结构)。过程活动记录是一种数据结构,用于支持过程调用,并记录调用结束以后返回调用点所需要的全部信息。 a(int i){ if(i>0){ a(--i);}els原创 2017-09-10 09:41:17 · 1224 阅读 · 0 评论 -
C语言里的与(&)或(|)非(~)异或(^)和移位运算符(<<,>>)
#include <stdio.h>#include <stdlib.h>int main(){ int and1=7; int and2=1; int or1=7; int or2=1; int not=7; int xor1=7; int xor2=1; int andresult=and1&and2; int orres原创 2017-09-10 15:04:45 · 8335 阅读 · 0 评论 -
C语言里的&&和&,||和|
#include <stdio.h>#include <stdlib.h>int main(){ int a=0; int b=1; int c=0; int d=1; if(1!=1&&(a++)<2){ }else{ printf("&&resut =%d \n ",a); } if(1==1||(b++)<2)原创 2017-09-10 15:28:21 · 1351 阅读 · 0 评论 -
C语言中的memset()
在C语言中定义了一个整型的数组或者是其他类型的数组,它们的默认数值是随机的,不像java有固定的默认值,但是在C语言中提供了一个memset()函数,它定义正在string.h中,可以帮助我们完成数组的初始化操作。 例如:#include<cstdio>#include<cstring>using namespace std;int main(){ int a[10]; ch原创 2017-09-11 13:01:29 · 1312 阅读 · 0 评论 -
C语言中的memset()--之二
以下的代码显示出一个关于memset()的一个问题,就是如果我想给int数组赋值为0就会出现一个莫名其妙的数字16843009,他的二进制编码为00000001 00000001 00000001 00000001 这是为什么?因为在memset中赋值是逐个字节进行赋值,这样就会导致每个字节都是00000001。 而在int a[10]中就没有和int b[10]中一样的问题,因为char是一个原创 2017-09-11 15:49:45 · 366 阅读 · 0 评论 -
C语言里的strcpy()
全局区/静态区(Global Static Area):并且在C语言中初始化的全局变量和静态变量放在同一个块,未初始化的全局变量放在另一个块(在C++中,由于全局变量和静态变量编译器会给这些变量自动初始化赋值,所以没有区分,都在一起)。#include <cstdio>#include <cstring>using namespace std;char a[5]={'A','B','C','D'原创 2017-09-20 20:34:08 · 728 阅读 · 0 评论 -
利用C语言的内存机制破解密码
下面是一个用C语言写出登录程序, 如果输入的密码正确,则输出your password is right,登录成功,如果不正确,则输出your password is not right,登录失败。代码如下:#include <cstdio>#include<cstring>using namespace std;char realpassword[7]="012345";int main原创 2017-09-21 15:26:35 · 1346 阅读 · 0 评论 -
Nodepad++和编程
Nodepad++写javahttp://blog.csdn.net/uncle_gy/article/details/78427238Nodepad++写C++http://blog.csdn.net/uncle_gy/article/details/78483751原创 2017-12-24 09:30:30 · 711 阅读 · 0 评论