c语言所在位置元素置为无效标志
时间: 2023-05-26 17:06:32 浏览: 54
在C语言中,可以使用特定的值作为无效标记。一种常见的方法是使用NULL或者-1表示无效,具体实现方式如下:
1. 使用NULL作为无效标记
NULL是C语言中指针类型的空指针常量,通常定义为0或((void *)0)。在使用指针类型变量表示数据位置时,将无效位置的指针赋值为NULL即可。
例如,定义一个结构体类型来表示学生信息,其中id为学生的学号。如果要将id为无效值的位置标记为NULL,可以使用以下代码:
struct student{
int id;
char name[20];
int age;
};
int main(){
struct student stu_list[50];
int n; // 学生数量
// 初始化数组
for(int i=0;i<50;i++){
stu_list[i].id = -1; // 将所有位置的id置为-1,表示该位置无效
}
// 读取学生信息
for(int i=0;i<n;i++){
int id;
char name[20];
int age;
scanf("%d%s%d",&id,name,&age);
// 将id为无效值的位置标记为NULL
if(id<=0){
stu_list[i].id = NULL;
}
else{
stu_list[i].id = id;
}
strcpy(stu_list[i].name,name);
stu_list[i].age = age;
}
// ...
}
2. 使用-1作为无效标记
如果数据位置不是指针类型,可以使用一个特定的值作为无效标记。常用的值有0和-1,通常将-1作为无效标记。
例如,如果要用一个一维数组来存储n个整数,可以将未使用的位置初始化为-1,表示该位置无效,代码如下:
int main(){
int num_list[50];
int n; // 数字数量
// 初始化数组
for(int i=0;i<50;i++){
num_list[i] = -1; // 将所有位置初始化为-1,表示该位置无效
}
// 读取数字
for(int i=0;i<n;i++){
int num;
scanf("%d",&num);
// 将无效值的位置标记为-1
if(num<=0){
num_list[i] = -1;
}
else{
num_list[i] = num;
}
}
// ...
}