数组的定义和初始化

一、定义

数组的维数必须用大于等于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

时间: 2024-10-28 14:37:23

数组的定义和初始化的相关文章

&lt;24&gt;【掌握】二维数组指针定义、初始化+

[掌握]二维数组指针定义.初始化 数组指针: 定义一个指针变量,让这个指针变量指向一维数组的元素 二维数组指针 行指针,用来指向二维数组的每一行,存放的是行的首地址 定义格式: 数据类型 (*行指针变量名)[数组第二维的长度]; 二维数组指针的初始化 int a[2][3]; int b[2][2]; float f1[4][4]; //假设我要定义一个指向数组a的一个行指针 // a = &a[0] = &a[0][0] = a[0] int (*p)[3] = a; 二维数组指针的使用

C语言中二维字符数组的定义和初始化

本篇日志关于二维字符数组的定义和初始化.我相信这篇文章属于菜鸟级的,高手请直接无视. 一般来说,我们可能会希望定义一个二维字符数组并且在定义的时候就用一些字符串来初始化它.比如说: 1 char testcase[30][MAX_LENGTH] = {"jo","vicent","tom","honey","gigi","lily","susan","pet

C语言字符数组的定义与初始化

C 语言字符数组的定义与初始化 1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0' ).2.字符数组与字符串在c 语言中,将字符串作为字符数组来处

第6章&#160;数组、指针与字符串(一)数组的定义与初始化

原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/10229933.html

Java的Vector的二维数组的定义及初始化

map=new Vector<Vector<Integer>>(m); for(int i=0;i<m;++i) { Vector<Integer>temp=new Vector<Integer>(); for(int j=0;j<m;++j) { temp.add(-1); } map.add(temp); } 原文地址:https://www.cnblogs.com/z2529827226/p/11620913.html

数组 在 c++, java, c#中的 定义、初始化 区别 中括号的位置

来自"http://www.cnblogs.com/Yogurshine/archive/2012/12/29/2839238.html" (1)Java 一维数组 1) int[] a; //声明,没有初始化 2) int[] a=new int[5]; //初始化为默认值,int型为0 3) int[] a={1,2,3,4,5}; //初始化为给定值 4) int[] a=new int[]{1,2,3,4,5}; //同(3) int[] a=new int[5]{1,2,3,

verilog数组定义及其初始化

这里的内存模型指的是内存的行为模型.Verilog中提供了两维数组来帮助我们建立内存的行为模型.具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任何一个单元都可以通过一个下标去访问.这样的数组的定义方式如下: reg [wordsize : 0] array_name [0 : arraysize]; 例如: reg [7:0] my_memory [0:255]; 其中 [7:0] 是内存的宽度,而[0:255]则是内存的深度(也就是有多少存储单元),其中宽度为8位,深度为25

js之二维数组定义和初始化三种方法

方法一:直接定义并且初始化,这种遇到数量少的情况可以用 var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]] 方法二:未知长度的二维数组 var tArray = new Array();   //先声明一维 for(var k=0;k<i;k++){        //一维长度为i,i为变量,可以根据实际情况改变

java数组定义及初始化+print打印问题

一般写SyStem.out.pirntln(xxxxx);这样是默认换行的等于在打印之后默认加上了:/n/r,若想在同一行输出,则写:system.out.print(xxx); 定义:int a[]; //声明未初始化a = new int [10]; // 定义占用空间大小(10个int)int a[] = new int [10]; //声明并定义大小(即分配了指定大小的空间)int a[] = {1,2,3}; // 声明并初始化,占用空间大小是3个int.初始化: 一维数组 1) in