码迷,mamicode.com
首页 > 其他好文 > 详细

数组的定义和初始化

时间:2014-08-04 04:10:16      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   2014   

一、定义

数组的维数必须用大于等于1的常量表达式来定义

整形字面值常量、枚举常量或者常量表达式初始化的整形const对象;

二、初始化

1、显示初始化数组元素

*在函数体外定义的内置数组,其元素均初始化为0;

*在函数体内定义的内置数组,其元素无初始化;

*不管数组在哪里定义,如果其元素为类类型,则自动调用该类的默认构造函数进行初始;如果该类没有默认构造函数,则必须为该数组的元素提供显示初始化

2、特殊的字符数组

3、不允许数组直接复制和赋值

// SHUZU.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <string>

using std::string;

int get_size()
{
    static int i = 0;
    i = i + 1;
    return i;
}

class testClass
{
public:
protected:
private:
    int a;
    char* p;
};

int atest[10];
testClass atc[10];

int _tmain(int argc, _TCHAR* argv[])
{
    const unsigned buf_size = 512, max_files = 20;
    int staff_size = 27;
    const unsigned sz = get_size();//sz是const对象,但是他的值要多运行时调用get_size才能知道
    char input_buffer[buf_size];//buf_size是const常量
    string fileTable[max_files + 1];//ok max_files是const常量,max_files + 1在编译时候就能算出是21
//     double salaries[staff_size];//error non const variable
//     int test_scores[get_size()];//error not const expression
//     int vals[sz];//error size not known until run time

    //显示初始化数组元素
    int btest[10];
    testClass btc[10];

    //特殊的字符数组
    char ca1[] = {c, +, +};//3维
    char ca2[] = {c,+,+, \0};//4维
    char ca3[] = "c++";//4维 null terminator added automatically

    //不允许数组直接复制和赋值
    int ia[] = {0, 1, 2};
    //int ia2[](ia); //error 
    int ia3[];
    //ia3 = ia; //error
    return 0;
}

bubuko.com,布布扣

数组的定义和初始化,布布扣,bubuko.com

数组的定义和初始化

标签:style   blog   http   color   os   io   for   2014   

原文地址:http://www.cnblogs.com/panyingying/p/3889217.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!