如题所述
1、数组元素是组成数组的基本单元。数组元素也是一种变量,其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。
2、数组元素的一般形式,数组名 [下标],其中下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。
3、a[5];a[i+j];a[i++]都是合法的数组元素。数组元素通常也称为下标变量。必须先定义数才能使用下标变量。
4、逐个输出各下标变量:for(i=0; i<10; i++),printf("%d";a[i);而不能用一个语句输出整个数组。
5、用来存放字符量的数组称为字符数组,字符数组的定义形式与前面介绍的数值数组相同。
6、由于字符型和整型通用,也可以定义为int c[10],但这时每个数组元素占2个字节的内存单元。字符数组也可以是二维或多维数组。
----------------------------------
int n;
scanf ("%d", &n);
int array[n]
---------------------------------
C++ 语言使用变长数组语法一样
------------------------------------------
int n;
cin >> n
int array[n]
---------------------------------------------------
另外可以使用
vector.追问
谢谢了,不过不行诶
cout<<"请输入需要多少个数:";
cin>>n;
int a[n];
cout<<"请输入"<<n<<"个数:\n“;
for(int i=0;i<n;i++)
cin>>a[i];
cout<<a<<endl;
system("pause");
return 0;追问
谢谢了,不过不行诶
追答C++的写法,没问题
int main()
{
int i,count;
printf("请输入你要定义数组大小");
scanf("%d",&count);
int a[count];
for(i=0;i<count;i++)
{
printf("请输入要存入数组的第%d数!",i+1);
scanf("%d",a[i]);
}
}追问
谢谢了,不过这个不行吧,你自己试试
追答#include
int main()
{
int i,count;
cout>count;
int *a=NULL;
a=(int *)malloc(sizeof(int));
for(i=0;i>a[i];
}
cout<<"数组: "<<endl;
for(i=0;i<count;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
system("pause");
free(a);
return 0;
}
谢谢了,不过晚了点,下次加油吧
int N = 0;
cin>>N;
int *p= new int[N]; //动态分配N个元素的int数组,把数组的指针赋值给p
删除动态分配的内存是:delete [] p; //方括号不可缺少。
下面使用该数组的方法就是:p[index]就是访问了下表为index的数组元素。
C语言的代码:
int *a;
int N;
scanf("%d", &N);
a = (int *) malloc(N * sizeof(int));
....
free(a);追问
先谢谢了!不过要打函数吗?我刚刚试了一下,好像还是不行啊
追答你是问C语言还是C++呢?
你的目的是什么,我帮你写出来如何动态分配用户输入的长度的数组。
就是定义一个由键盘输入长度的数组,然后在给这个数组赋一些值
比如说,我打这个好像输出时一些乱码啊
#include
using namespace std;
int main()
{
int i;
int N=0;
cin>>N;
int *p= new int[N];
for(i=0;i<N;i++);
p[i]=1;
for(i=0;i<N;i++)
cout<<p[i]<<endl;
delete [] p;
return 0;
}
好的,说C++吧,C语言大致相同:
首先定义一个int N,这个N就是你要分配的数组长度。
然后,这个N要由用户由键盘指定:cin>>N;
好了,N的大小定下来了——下面进行分配内存:
int *p = new int[N];
上面这条语句是说:定义一个指针,名叫p,然后初始化这个p,
new int[N]动态创建了一个长度为N的数组(这个N刚刚已经由用户键盘指定了)
new操作符返回的是数组的首元素的地址,然后把这个地址用于初始化p,也就是p指向了刚刚分配的数组。
之后要使用这个数组就通过指针p进行间接访问了,比如:
p[0] = 2; //数组的第一个元素赋值为2,
p[1] = 4; //数组的第二个元素赋值为4
p[N-1] = 34343; //数组的最后一个元素赋值为34343
当数组不再需要的时候,需要销毁,否则它一直占用着内存没有释放,销毁的方法是:
delete [ ] p;
delete操作符是与new相对应得操作符,用于销毁动态分配的对象。
现在懂了不?
从创建、使用到销毁,都给你了代码。
有点懂了,不过为什么我这个输出是一些乱码啊,麻烦你再帮我看看
#include
using namespace std;
int main()
{
int i;
int N=0;
cin>>N;
int *p= new int[N];
for(i=0;i<N;i++);
p[i]=1;
for(i=0;i<N;i++)
cout<<p[i]<<endl;
delete [] p;
return 0;
}
你的代码有错误,在第一个for循环后面,你多写了一个分号。
变成了一个空语句。
#include
using namespace std;
int main(){
int N=0;
cin>>N;
int *p= new int[N];
for(int i=0;i<N;i++) p[i]=1;
for(int i=0;i<N;i++) cout<<p[i]<<endl;
delete [] p; return 0;
}