C++
文章平均质量分 57
easion_zms
这个作者很懒,什么都没留下…
展开
-
JAVA程序员学习C++之指针
1.指针定义指针变量存储变量内存中的起始地址,相当于Java中的引用。由于仅仅存储了内存的起始地址,所以要正确的存取指向数据,还必须知道数据所占用的字节数,所以声明指针时还必须声明类型。指针的声明方式为:类型 *变量名;比如: int *p; float *p1;1.1 为指针赋值为指针型变量赋值使用运算符&(获取变量在内存中的地址),如下式:int a=原创 2015-05-07 13:47:41 · 470 阅读 · 0 评论 -
Java程序员学习C++之函数
头文件function.h#ifndef _FUNCTION_H_ //头文件嵌套,会出现函数被重复定义的问题,加上此可以保证头文件不会被定义多次#define _FUNCTION_H_//#pragma once //也可以使用此来防止多次的包含/* 先声明一个函数,后面再定义(声明可以很多次,定义只能一次) 该函数的定义必须写在源文件中,不然若有多个文件include该头文 件原创 2015-07-23 14:26:48 · 604 阅读 · 0 评论 -
为什么C++中有头文件而Java没有头文件的呢?
java中采用import的方式导入.class文件,.class文件中包含类的方法、属性等的定义,因此不在需要.h头文件,而c或c++编译后的二进制代码不包含函数和类的信息,为了在编译时进行函数格式合法性检查,采用.h的文件给出。java提供给用户的是.class文件,虽然包含类的完整信息,但是对于开发者“不可读”,因此还需要以文档的方式提供类的声明。来自:http://www.转载 2015-07-23 10:34:48 · 897 阅读 · 0 评论 -
Java程序员学习C++之字符串
#include #include using namespace std;int my_len(const char *str){ int len = 0;// while (*str != '\0')// {// ++len;// ++str;// } while (*(str++) != '\0') { ++len; } return len;}原创 2015-07-21 12:04:56 · 553 阅读 · 0 评论 -
Java程序员学习C++之Vector
#include #include #include using namespace std;typedef vector MyVector;int main(){ //std::vector c; MyVector c; c.reserve(40);//初始预留一定的空间,减少分配新空间->复制->删除旧空间的效率消耗 //MyVector c(40,1);//预留一定原创 2015-07-17 16:37:46 · 443 阅读 · 0 评论 -
Java程序员学习C++之常量指针和指针常量
常量和指针变量大家都知道了就是在声明后还能修改内存块中对应的值,常量就是声明后不能改变它在内存中的值。在C++中定义指针变量会分配一个4字节(32位)的内存块用来存储指向数据的地址,如果指针和常量结合会有什么问题呢?通过指针的定义我们可以看出,指针类型会牵扯到两个概念,指针本身(4字节的内存块)和指向数据(4字节的内存块存储的地址)那如果声明指针是常量的话是保护指针本身不能改变 呢原创 2015-06-15 15:04:53 · 530 阅读 · 0 评论 -
原码 反码 补码
1的原码 0000 0001-1的原码 1000 0001(最开始的1为符号位)两者相加 1000 0010 不等于 0所以才有补码,有了补码就可以直接进行运算反码定义1.正数的反码与原码相同2.负数的反码,符号位为“1”保持不变,数值部分按位取反。EX:1的反码 0000 0001-1的反码 11原创 2015-06-10 18:00:27 · 757 阅读 · 0 评论 -
Java程序员学习C++之数组和动态数组
数组:#include using namespace std;//模板函数template void dump(T val){ cout >>>" << __FUNCTION__ << endl;//内置的宏,打印当前函数的名字 cout << sizeof(val) << ":" << typeid(val).name() << endl; cout << "<<<<"原创 2015-07-06 11:09:28 · 697 阅读 · 0 评论 -
JAVA程序员学习C++之引用
先上代码吧:#include using namespace std;struct User{ int age;};void test(User u){ //值传递,u只是一个实参的拷贝对象,对u的操作和实参没有关系 u.age = 20; cout << "test(user) user=" << &u << endl;}void testPointer(User原创 2015-05-08 15:45:53 · 459 阅读 · 0 评论 -
从符号表来理解指针和引用
一.符号表:1.普通类型:简单说来符号表是用来储存源代码中出现的有关名字的信息,对应到本文中就是保存了变量的名称和变量在内存中分配的首地址。比如代码:int main(int argc, char* argv[]){ int a = 5; char b = 'c'; return 0;}对应的符号表如下图所示:2.指针类型:32位的系统原创 2015-06-01 18:05:45 · 1926 阅读 · 0 评论 -
Java程序员学习C++之构造函数和析构函数调用的时机
今天看书忽然对这个地方有点模糊,尤其是析构函数在调用默认的析构函数和用户自己覆写的析构函数的时候有点意识模糊呢。写段代码总结下 #include using namespace std; class Box { private: double length; public: Box(double l转载 2015-05-27 10:19:00 · 525 阅读 · 0 评论 -
JAVA开发人员学习C++之变量名和变量地址之间是什么关系
变量名是高级语言所定义的一种东西,它主要是为了方便的寻址变量,在编译过程中,每个变量都有一个变量名,每个名都对应一个应用,即变量的首字节地址。也就是说变量名与其地址具有一对一的映射关系,然而在编译后变量的名字不存在了,C++为了区分类似于形式的变量名和真实地址就必须存在一种机制。 对于一个变量a,不加&,就表示取a的值,而加了&就是取a在内存中的地址,而后者的值只能赋给指针变量。 其实后来原创 2015-05-20 14:53:17 · 692 阅读 · 0 评论 -
Java程序员学习C++之函数指针
函数指针的定义:头文件:function.h//该头文件定义了接口,在实际的源文件中定义了模板方法//后续的调用类只需要实现覆盖before,process,after方法即可实现模板方法的回调/* extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中, 提示编译器遇到此变量或函数时,在其它模块中寻找其定义。*/extern void(*bef原创 2015-07-23 14:29:45 · 619 阅读 · 0 评论