`
文章列表
试图对不存在的元素进行下标操作是程序设计过程中经常犯的严重错误。 所谓的“缓冲区溢出”错误就是对不存在的元素进行下标操作的结果。这样的缺陷往往导致PC机和其他应用中最常见的安全问题。 ---来自《c++ primer》
#include <iostream> using namespace std; class A { public: int _a; A() { _a = 1; } void print() { cout << _a; } }; class B : public A { public: int _a; B() { _a = 2; } void print() { cout << _a; } }; class C : public B { ...
示例程序: #include <stdio.h> //#pragma pack(4) struct Test { double m4; int m3; char m1; }; void main() { struct Test t; printf("%d", sizeof(t)); system("pause"); } 结果:16 小记:前面数据向后看齐,后面数据向前看齐,填充对齐。
指针的大小是问:一个指针变量占用多少内存空间? 分析:既然指针只是要存储另一个变量的地址,。注意,是存放一变量的地址,而不是存放一个变量本身,所以,不管指针指向什么类型的变量,它的大小总是固定的:只要能放得下一个地址就行!(这是一间只有烟盒大小的“房间”,因为它只需要入一张与着地址的纸条)。 存放一个地址需要几个字节?答案是和一个 int 类型的大小相同:4字节。 所以,若有: int* pInt; char* pChar; bool* pBool; float* pFloat; double* pDouble; 则: sizeof(pInt)、sizeof(pChar)、si ...
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。 下面是一个小例子: class ClxTest {  public:   void Output() const; }; ...
C#是三大主流OOP(面向对象编程)语言(C++, Java, C#)之一,也是最新的一种,其中必然借鉴了前两者的长处,“否则它的缔造者就该打屁股”——候捷语,见《C# Primer 中文版》的译续:-) 它们三者有太多的共性,其语法和编程概念,绝 ...
最开始时微软公司将Java当做一种能解决C和C++中存在的问题的语言,并不在意,并继续维持和培训着其C和C++技术和编程人员。接下来不幸的是,正当微软尽力在Visual J++基础上拓展Java功能,并使之与Windows操作系统紧密结合在一起 ...
Java程序中的每个变量要么是基本数据类型(boolean, char, byte, short, int, long, float, double),要么是对对象的引用 C++有许多种基本类型,额外还有struct, union, enum, 数组和指针,C++指针可以指向对象,也可以不指向对象 Java没有枚举、联合类型,因为Java认为没有必要。将可有可无的语言元素去掉是Java对C/C++做出的一大改变,因此,普遍认为Java较C++更轻便,更精简 Java采用Unicode字符集,C++通常用ASCII字符集。但ASCII是Unicode的子集,对于习惯于ASCII的程序员 ...
推荐C和C++一直是程序设计语言的主流之一,因为C和C++既具有程序设计语言所共有的功能,在很多方面又独具一格,所以极受程序员的青睐。 c和c++的主要特点归纳如下: 1. 语句简练、语法结构清晰、紧凑,使用方便、灵活。 [注]: 标准C只设置32个保留字(专用词)和九种语句,C和 C++的绝大部分功能都由各种标准函数和类来实现。 2.程序结构简单、书写格式自由。 3.数据类型丰富、齐全。 标准C供了整数、实数、字符、字符串等基本数据类型,还提供数组、指针、结构体等构造数据类型。C++还增加了类这一特殊数据类型的定义机制。 4.运算符丰富、齐全,运算能力强。 C提供的运算符分为常规运算和与硬件有 ...
一、修饰名(Decorated Name) C/C++程序中的函数在内部是通过修饰名来标识的。修饰名是在函数定义或原型编译阶段由编译器创建字符串。当你在LINK等工具中要指定一个函数名时,会用到修饰名。 1、使用修饰名: 大多数情况下, ...
方案一: a = a + b; b = a - b; a = a - b; 方案二: a = a ^ b; b = a ^ b; a = a ^ b; 我们用异或语句比较容易,不用担心超界的问题。(方案一中的a = a + b句,如果a和b都是比较大的两个数,则a = a + b是就会超界。)
访问JSP的过程:如果第一次访问.jsp文件,被服务器翻译成一个java文件(servlet),然后被编译成class文件,加截到内存中.如果以后访问jsp,那就直接调用内存中的jsp实例,第一次访问jsp慢,后面的访问速度会快很多,就是这个原因了. <%@ page contentType="text/html;charset=gb2312"> <html> <body> <% out.println("hi,world"); ...
1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。 序号 方 法 说 明 1 object getAttribute(String name) 返回指定属性的属性值 2 Enumeration getAttributeNames() 返回所有可用属性名的枚举 3 String getCharacterEncoding() 返回字符编码方式 4 int getContentLength() 返回请求体的长度(以字节数) 5 String getConten ...

关于(int&)b的认识

    博客分类:
  • C++
(int&)b表示从b的地址处开始的前32位内容(sizeof(int)).
上述的四条语句,前面两个很好理解,而后面两个,大部分C++初学者都会比较困惑,今天我也是查阅了一些资料以后才恍然大悟。下面具体来说明一下: int i; int *a = &i;//这里a是一个指针,它指向变量i int &b = i;//这里b是一个引用,它是变量i的引用,引用是什么?它的本质是什么?下面会具体讲述 int * &c = a;//这里c是一个引用,它是指针a的引用 int & *d;//这里d是一个指针,它指向引用,但引用不是实体,所以这是错误的 原文地址:http://www.cnblogs.com/netqer/archive/2 ...
Global site tag (gtag.js) - Google Analytics