首页 > 代码库 > 数组的定义和初始化
数组的定义和初始化
一、定义
数组的维数必须用大于等于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;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。