
C/C++
文章平均质量分 78
haiou0
这个作者很懒,什么都没留下…
展开
-
你会用sizeof吗?(vc篇)--有关“字节对齐”
本文主要包括两个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。1、 sizeof应用在结构上的情况 请看下面的结构: struct MyS转载 2011-10-16 18:18:45 · 1013 阅读 · 0 评论 -
指针、数组名、地址的区别
数组是指针的基础,多数人就是从数组的学习开始指针的旅程的。下面我节选一些在各种论坛和文章里经常见到的关于数组的文字:“一维数组是一级指针”“二维数组是二级指针”“数组名可以作为指针使用”“数组名就是..........的常量指针”“数组名就是..........的指针常量”..................................这些文字看起来非常熟悉吧?类似转载 2012-09-19 17:22:26 · 1432 阅读 · 1 评论 -
数组指针和指针数组的区别
数组指针和指针数组的区别数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维转载 2012-09-20 09:04:07 · 767 阅读 · 0 评论 -
goto 语句跳不出无限循环,但之后的循环体表达式不执行了,只执行步进和判断
下面代码当if !n!==100的条件成立时会马上跳出for循环执行"echo count=%n%"语句,这是毫无疑问的。@echo off&setlocal enabledelayedexpansionfor /l %%i in (1,1,1000) do (set /a n+=1if !n!==100 goto :end):end echo count=转载 2012-09-14 11:32:26 · 2887 阅读 · 0 评论 -
C++内存分配秘籍—new,malloc,GlobalAlloc详解
一。关于内存 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。转载 2012-02-27 23:04:57 · 746 阅读 · 0 评论 -
结构体定义:struct与typedef struct 用法详解和用法小结
一、typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef int INT; typedef int ARRAY[10]; typedef (int*) pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。 二、#define的用法转载 2011-10-16 13:44:27 · 53951 阅读 · 8 评论 -
程序员面试宝典(三)P107
有这样一段代码#include #includeusing namespace std;class base{private: int m_i; int m_j;public: base(int i):m_j(i),m_i(m_j){} base():m_j(0),m_i(m_j){} int get_i() {return m_i;} int转载 2011-11-02 04:20:26 · 1612 阅读 · 0 评论 -
Explicit Constructors(显式构造函数)
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); 但是有转载 2011-11-02 00:35:28 · 770 阅读 · 0 评论 -
各种构造函数的区别
各种构造函数的区别 构造函数(包括拷贝构造函数)的基本功能:分配空间,初始化数据. 构造函数名和类名一样一.默认构造函数. 与用户自定义构造函数相比,默认构造函数有功能缺陷:只能分配空间,完成不了初始化数据的任务(类的数据成员都是基本类型数据类型时的默认拷贝构造函数是个例外). 1.一般的默认构造函数 若用户没有定义任何转载 2011-10-25 12:06:18 · 1274 阅读 · 0 评论 -
联合体(共同体)union V{...}v;
void test (){ union V { struct X { unsigned char s1:2; // :2 指 占两个字符?是两个bit。若是int 占多少? unsigned char s2:3; unsigned c转载 2011-10-25 12:28:25 · 4235 阅读 · 3 评论 -
C函数的参数传递 详述
参数的传递顺序 和 求值顺序?见:http://topic.youkuaiyun.com/u/20090930/11/c89306fa-8c55-4706-8535-777febc299ec.htmlhttp://topic.youkuaiyun.com/u/20111016/16/7e2b3d10-75cb-4b43-b081-81aa224ac8fe.html1.3 C函数的参数传递过程基础知识转载 2011-10-22 13:23:47 · 819 阅读 · 0 评论 -
C++ static、const和static const 以及它们的初始化
const定义的常量在函数执行之后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间。static 表示的是静态的。类的静态成员函数,成员变量是和类相关的,不是和类的具体对象相关,即使没有具体的对象,也能调用类的静态成员函数,成员变量。一般的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。 在c++中,static静态成员变量不能在类内部初始化。转载 2011-10-20 14:34:14 · 616 阅读 · 0 评论 -
public与 private的区别
虽然两者都可以捆绑行为。 但是,理解不一样。 struct,就是对程序员全局可见的数据与方法。简化数据逻辑结构的设计。可以说是一种自定义的数据结构。 而class,则是将数据与方法封装,即让行为与数据一致。则是一种编程方法。即客观世界在代码世界中的体现。体现的是一种编程思想。首先,讨论这个问题应该仅从语法上讨论,如果讨论不同人之间编程风格上的差异,那这个问转载 2011-10-20 13:28:22 · 1372 阅读 · 0 评论 -
当“友元”遇到“虚函数”
虚函数和友元是C++中两个很重要的概念,友元和虚函数经常会在同一程序中出现。下面是几点值得注意的知识。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public。几点基本知识:1、如果类A是类B的友元,则类A(的成员函数)可以直接访问类B的私有转载 2011-10-20 14:33:25 · 2700 阅读 · 0 评论 -
可重入函数与不可重入函数
声明:看了有益,所以转载,若有有不妥请作者及时联系! 在网上看到说 malloc/free是可重入的 ,想请高手指点! 转自:http://www.cppblog.com/franksunny/archive/2007/08/03/29269.html主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入O转载 2011-10-20 00:28:05 · 771 阅读 · 0 评论 -
C/C++中static 修饰变量和修饰函数时的不同
转自(from http://www.cnblogs.com/dc10101/archive/2007/08/22/865556.html),比较有意思在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这转载 2011-10-20 00:25:34 · 2179 阅读 · 0 评论 -
C语言的字节对齐以及#pragma pack的使用
C编译器的缺省字节对齐方式(自然对界)在缺省情况下,C编译器为每一个变量或是数据单元按其自然对界条件分配空间。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储(成员之间可能有插入的空字节),第一个成员的地址和整个结构的地址相同。 C编译器缺省的结构成员自然对界条件为“N字节对齐”,N即该成员数据类型的长转载 2011-10-21 11:48:37 · 823 阅读 · 0 评论 -
static定义全局变量的分析
看到有一位同学在头文件中这么写:1static const wchar_t* g_str1 = …2static const wchar_t* g_str2 = …这种定义变量的方式我从来没有见过,而且它还能顺利通过编译,于是我很想知道编译器是如何处理这种变量定义的。转载 2013-03-04 09:18:04 · 3992 阅读 · 0 评论