如题所述
在程序中经常要根据用户输入新建数组。但是c语言中不允许非常量成为新建数组时表示大小的下标:
for example:
int line;
int col;
scanf("%d,%d",&line,&col);
int p[line][col];//这样是不允许的!!!!!
正确的做法是:
p = (int *)malloc(sizeof(int)*line*col);
访问或者写入数据时:
*(p + line*i + j);
p +line*i + j;
扩展资料
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
在 C 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:
type arrayName [ arraySize ];
这叫做一维数组。arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C 数据类型。例如,要声明一个类型为 double 的包含 10 个元素的数组 balance,声明语句如下:
double balance[10];
现在 balance 是一个可用的数组,可以容纳 10 个类型为 double 的数字。
#include<iostream>
using namespace std;
int main() {
int i;
cout << "please put number in it:";
int a[10];
for (i = 0; i < 10; i++)
{
cin >> a[i];
}
for (int n = 0; n < i; n++) {
cout << a[n]<<" ";
}
return 0;
}
扩展资料
C++_把输入的几个整数存入数组中
#include<iostream>
#include <stdio.h>
using namespace std;
int main()
{ int i=0;
int a;
int num_in[40];
char c;
cin>>a; //想要存储的数的数目
while(i<a)
{
c=getchar(); //获取输入字符
if((c>='0'&&c<='9')||c=='-') //输入正整数、负整数
{
ungetc(c,stdin);
cin>> num_in[i++];
}
}
for(int j=0;j<i;j++)
{
cout<<"a["<<j<<"]:"<<num_in[j]<<endl;
}
return 0;
}
本回答被网友采纳#include <iostream>
using namespace std;
int main()
{
int *a;
int i,n;
cout<<"please enter array size:" <<endl ;
cin >> n; // 数组大小
a = (int *) malloc(sizeof(int) * n); // 分配
cout<<"please enter " << n << " numbers:" <<endl ;
for (i=0;i<n;i++)
{
cin >> a[i]; // 键盘输入 n 个数
}
for (i=0;i<n;i++) cout << a[i] << " ";
cout << endl;
return 0;
}
输入例子:
please enter array size:
5
please enter 5 numbers:
12 34 56 888 999本回答被提问者采纳
循环
cin>>p[n];