c++定义数组+不指定长度
答:是的,c中数组定义时要指定大小。当然,万事也不是绝对的。例如:1.作为形参的时候,可以不指定,因为在函数调用的时候,数组会转为指针的。2.当为字符串数组时,char ST[]="hello word"这儿定义了一个ST字符数值,不需要你自己去指定大小,系统会自动生成长度为11....
答:C中有 变长数组 的概念呀(c99标准),“变长”的意思就是 可以用变量来指定数组的长度,而数组一旦创建 长度就无法变化了,而且变量必须赋值在先,变长数组才能创建。某些人不能因为无法正确的设置编译器支持c99标准,而否定了 变长数组 这个用法。
答:C语言中可以定义个数不确定的动态数组,但不是用uint8 array[];这样来定义的,这样会报错。定义个数不确定的动态数组必须先声明一个指针,然后用malloc为这个指针分配一段连续的空间,然后退出程序的时候要记得使用free释放这些变量空间,否则会造成内存泄露。比如你要定义一个字符型的动态数组,可以先声明...
答:变长数组:数组长度为变量,在编译期间不能确定数组长度,要等到程序运行后,变量赋值后(数组定义语句不要写在变量赋值之前!),才能给数组分配内存。变长数组本质还是静态数组(定义前大小可变,但定义后不能改变大小)。要定义动态数组需要用malloc函数来申请内存。
答:不一定 也可以根据初始化数据来自动大小 形式为 int a[] = {1,2,3,4,5};这里初始化了五个数据,大小就是5个int 其实这个也是变相的指定大小了。
答:没有在方括号中指定数组长度时,必须有初值表,否则将导致语法错误,如:int a[] = {1, 2, 3};则a的长度为3。
答:定义一个未知长度的数组的方法:一是用VLA可变长数组,例如:int i = 10, j = 20;double a[i][j]; //定义VLA VLA要c99才开始支持,需要使用c99编译器,例如gcc 二是使用动态数组,例如:int m = 10, n = 20;...double **p = ( double** )malloc( 10 * sizeof( double* ) )...
答:C语言中,未指定长度的数组声明时,可以依据初始值列表来确定数组长度。比如unsigned char array[]={12,34,56};虽然没有指定长度,系统仍会给array分配3个字节的空间,通过sizeof(array)计算得到的结果也是3。请采纳,谢谢
答:struct num val;那么val实际上的成员只有a和b可以调用,而c[],因为定义模版时没有赋予它固定的成员个数,实际上c数组所占用空间字节为0,即无储存空间可用 struct num *p;p = malloc( sizeof(struct num) + 3 * sizeof(int) );那么p所指向的空间是一个拥有4+4+3*4=20字节(模版的字节...
答:这么说把.字符数组只能初始花时全部赋直,在程序中只能用下标来逐个赋直,在初始化时如果全部指定了初直就可以省略数组长度
网友评论:
子齐18373912992:
c++中声明数组时可以不定义数组长度吗 -
40606谭柯
: vector又叫不定长数组,可以方便的插入和删除元素,除了比数组慢一些. 也可以用指针实现动态数组,或者用函数给数组动态分配空间.
子齐18373912992:
C++中如何定义一个不知道长度的数组?求大神帮助 -
40606谭柯
: 要定义一个不知道长度的数组是不可能的..因为,“定义”是要在内存中开辟空间的..假如说,你不知道要开辟多大的空间,系统怎么给你分配空间呢?? 不过,你可以实现动态分配空间..比如:int len = 0;cin>>len;int *pointer = new int[len]; 首先要用户输入数组长度,然后再分配.这样就实现了动态分配数组的目的了..
子齐18373912992:
C++中定义一个数组一定要给出长度吗? -
40606谭柯
: 是的,定义数组必须给出其长度,想要改变其大小也有几种方案 1、用宏定义 #define ARRAYSIZE 10 int array[ARRAYSIZE] 这样每次程序运行时只需改变宏就可以方便的改变数组的大小 2、动态生成 int N; cin>>N; int *array=new int[n]; 这样就可以使用了 3、使用STL中的vector,vector就相当于一个动态的数组,可以随时动态地增加大小,非常方便
子齐18373912992:
C++如何定义一个未知长度的数组 -
40606谭柯
: 数组定义必须明确数组长度,所以未知长度的数组是无法直接定义的.1. 如果你的数组在运行过程中可以确定,比如你输入一个整数来确定数组长度,这样的话可以通过动态内存分配实现.比如: int a; cin>>a; int *b=new int[a];2. 如果你的数组运行的时候都无法确定长度,比如你的数组可能会不断的添加新元素进去.这时候可以使用C++的标准库vector实现,比如:vector<int> array; array.push_back(10); array.push_back(10); array.push_back(10);
子齐18373912992:
C++怎样声明一个长度不定的数组?
40606谭柯
: int *a,i; //定义一个指针,i表示数组个数 a=new int[i];//用new先创建他的空间 delete a;//删除使用时和普通数组差不多,a[0]~a[i-1];楼上说的没错,长度不定的数组好像是不存在.
子齐18373912992:
c++新建不知道长度的数组 -
40606谭柯
: int size;//size表示数组长度 size=;//给size赋值 int * p=new int [size];//要定义不确定长度数组,必须动态分配,此处以定义int型数组为例//接下来用*(p+i)来访问数组//最后delete [] p 所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式.这些按序排列的同类数据元素的集合称为数组.
子齐18373912992:
C++中如何定义未知长度的数组? -
40606谭柯
: 1.可以定义一个动态数组 2.定义一个指针
子齐18373912992:
C++怎么定义一组未知长度的数组
40606谭柯
: #include<vector> #include<iostream> #include<algorithm> using namespace std; int main() { vector<int> arr; //类似与动态数组的东西 int a; while(cin>>a,a) //读取a,且a不为0 arr.push_back(a); //存入arr sort(arr.begin(),arr.end()); //从小到大排序 cout<<"最小值:"<<arr[0]<<endl; cout<<"最大值:"<<arr[arr.size()-1]<<endl; }
子齐18373912992:
C++语言里面定义数组的时候,不定义数组长度而写成如下格式是否合法 : R[] -
40606谭柯
: 不合法
子齐18373912992:
C++怎样声明一个长度不定的数组? -
40606谭柯
: 可以用指针.如char *p = malloc(0);//分配一个0长度的字符串数组.那么改变它容量的办法就是 p = (char*)realloc(p,新大小);最后要通过free(p);来释放它占用的空间.长度不定的数组好象是不存在的.