第1个回答 2012-08-25
unsigned short、unsigned int、 unsigned long这些都是定义正整数,只是范围不一样而已。
比如:
unsiged short a; //这里a是无符号短整型,也就是正整型的正数类型,
unsiged int b; unsiged long c; //与unsiged short a;一样,只是b的是int类型的正整数,c是long类型的正整数。它们的区别就类似于short,int,long之间的区别一样,只是都是正整数而已。
至于定义未知长度的一维数组,你可以利用指针,
1.可以如一楼的方法,
usingned int a;
int *array;
printf("%d",&a); //这是C的语法 或者 cin>>a; //这是C++的语法,两者等价
array = new int[a]; //之后你就可以吧array当做是长度为 a 的数组进行操作了。
2.你可以使用malloc()方法动态分配内存来实现。
如:
#include<stdio.h>
#include<malloc.h>
void main()
{
usigned int n, i;
int *array;
scanf("%d",&n);
//申请分配类型为int,长度为n的内存空间,并将首地址赋值给指针array;
array = (int*)malloc(sizeof(int)*n); //利用malloc()函数申请内存空间,要引入malloc.h头文件
for(i=0; i<n; i++) //初始化array
{
array[i] = i;
}
for(i=0; i<n; i++) //输出array
{
printf("%d \n", array[i]);
}
return;
}