C++记录-创新互联

1, a++与++a

成都创新互联是专业的塔河网站建设公司,塔河接单;提供成都做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行塔河网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

2,

int a[10] ;

int* p = (int*)(&a + 1 ) ;

&a 是数组指针, 其类型为int (*)[10] ,  &a+1 表示 a + 10 .

a才是&a[0] .

(int*)(&a+1) - (int*)(&a) == 10

3,

在默认构造函数内部再调用带参的构造函数属用户行为而非编译器行为,亦即仅执行函数调用,而不会执行其后的初始化表达式。

只有在生成对象时,初始化表达式才会随相应的构造函数一起调用。

struct CLS
{
int m_i;
    CLS(int i): m_i( i ) { }
    CLS()
    {
        CLS(0 );//不会执行其后的初始化表达式    }
};

int main(void)
{
    CLS obj;
    cout<< obj.m_i << endl;
return 0;
}

4,

C++中的空类,默认产生哪些类成员函数

class Empty
{
public:
    Empty();//缺省构造函数    Empty(const Empty &); //拷贝构造函数    ~Empty(); //析构函数    Empty & operator=(const Empty &); //赋值运算符    Empty* operator&(); //取址运算符  const Empty* operator&() const; //取址运算符const};

5,

// 功能:由src所指内存区域复制count个字节到dest所指内存区域。
// 说明:src和dest所指内存区域可以重叠,但复制后dest内容会被更改。函数返回指向dest的指针void *memmove(void *dest , const void *src , size_t count)
{
    assert( (dest!= NULL) && (src != NULL));   //安全检查    assert( count > 0 );

char *psrc = (char *) src;
char *pdest = (char *) dest;
//检查是否有重叠问题  if( pdest < psrc )
    {
//正向拷贝   while( count-- )
*pdest++ = *psrc++;
    }
else if( psrc < pdest )
    {
//反向拷贝        psrc = psrc + count - 1;
        pdest= pdest + count - 1;
while( count-- )
*pdest-- = *psrc--;
    }
return dest;
}

// 功能:由src指向地址为起始地址的连续n个字节的数据复制到以dest指向地址为起始地址的空间内。
// 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针void *memmcpy(void *dest , const void *src , size_t count)
{
    assert( (dest!= NULL) && (src != NULL));   //安全检查    assert( count > 0 );

char *psrc = (char *) src;
char *pdest = (char *) dest;
while( count-- )
*pdest++ = *psrc++;

return dest;
}

 6,

7,


文章题目:C++记录-创新互联
标题来源:http://myzitong.com/article/cdhheo.html