C++ 求帮助。两个问题:1怎么定义一个正整数? 2怎么定义一个未知长度的一维数组(长度由输入确定)?

如题所述

定义一个正整数有4种方法:
unsigned int a; //最常用的
unsigned short a;//short是短整型
unsigned long a; //long是长整型
unsigned char a; //char是字符型,这种方法可定义正整型,亦可定义字符变量

定义未知长度的数组:
int n=0; //定义一个整型变量来记录你要输入的数组长度
int *array; /*定义一个指针变量作为数组的首元素地址,array亦即数组名,int是类型名,表示数组是整型数组*/
cin>>a; //输入你要定义的数组长度。
array=new int[a]; //为你的数组在内存中开辟一小段空间,并将其首地址赋值给array。也就是定义好了一个以“array”为数组名,长度为a的整型数组。
温馨提示:答案为网友推荐,仅供参考
第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;
}
第2个回答  2012-08-25
#include <iostream>
using namespace std;
void main( )
{
a = 0,b; // 定义一个
int *array;
cin>>a; // 长度由输入确定
array = new int[a]; // 定义一个未知长度的一维数组(长度由输入确定

// 使用数组
for(b=0;b<a;b++)
{
array[b]=b;
}
for(b=0;b<a;b++)
{
cout<<array[b]<<" ";
}

//释放内存
delete[]array;
}本回答被提问者和网友采纳
第3个回答  2012-08-25
unsigned char;
unsigned short;
unsigned int ;
unsigned long;
//以上都定义一个正整数,范围不一样...

类型指针 p=new 类型[数量]
类型指针 p=(类型*)malloc [数量*sizeof(类型)]

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网