我找了个电话薄应用的程序,有些地方看不懂
结构体是
#define ID struct id
struct id
{
char name[20];
char tele[20];
ID *next; 《《==这里不太懂,是什么意思
};
还有底下是这个他的一个键入函数
这里有些不懂
ID *creat()
{
ID *p1,*p2,*head; 《==这里是什么意思?只是单独定义3个指针吗?ID写在最前边是做什么?
char str[20];
p1=p2=head=NULL;
ID *creat()
{
ID *p1,*p2,*head;
char str[20];
p1=p2=head=NULL;
printf("\t\t\t 开始输入记录(姓名 # 结束)!\n");
while(1)
{
printf("请输入姓名:\n");scanf("%s",str);getchar();
if(strcmp(str,"#")==0) break;
p1=(ID*)malloc(sizeof(ID));
strcpy(p1->name,str);
printf("请输入电话号码:\n");scanf("%s",p1->tele);getchar();
if(head==NULL)
{
head=p1;
p2=p1;
}
else
{
p2->next=p1;
p2=p1;
}
pc++;
}
p2->next=NULL;
return(head);
}
首先感谢一下,能在帮忙读下这个键入函数吗?见问题补充
追答这是个建立链表的函数:
ID *creat()
{
ID *p1,*p2,*head; //首先定义三个指针
char str[20];
p1=p2=head=NULL; // 令其初始化为空
printf("\t\t\t 开始输入记录(姓名 # 结束)!\n");
while(1)
{
printf("请输入姓名:\n");scanf("%s",str);getchar();
if(strcmp(str,"#")==0) break; //当你输入的姓名为#时结束循环 跳出while循环,
p1=(ID*)malloc(sizeof(ID)); //为p1分配内存
strcpy(p1->name,str); //将你输入的名字赋值到结构体指针里;
printf("请输入电话号码:\n");scanf("%s",p1->tele);getchar();
if(head==NULL)
{
head=p1;
p2=p1;
}
else
{
p2->next=p1;
p2=p1;
}
pc++;
}
p2->next=NULL;
return(head);
}
不知道你哪不懂,就说这些吧。。。
呵呵。。主要是后边的if语句
如果head为空指针,下边乱乱的p1,p2,head来回换,搞不懂他是怎么键入的。。
if(head==NULL)
{
head=p1; //如果 head为空,即p1的值赋给head,
p2=p1; //p2是传递指针,所以令p2 为p1 方便下面的传递
}
else
{
p2->next=p1; //如果head不为空,即head内已经存有值,则让p2->next=p1 即将新建的p1连接到p2后 构成链表;
p2=p1; 再将p2 指向p1 方便下一次的连接。。
}
pc++;
}
p2->next=NULL;
return(head);
}
还有吗?
感谢。最后一个问题。
感觉大家C语言学的都好厉害啊。
现在大一下刚把谭浩强那本学完。到底如何学才能像大家一样从根本上懂C语言呢?
再次感谢
额 其实吧,我也是大一下,用心学就能学好的!推荐郝斌视频给你。115快盘里可以搜索到!!!好吧真不能再问了,我濒临崩溃。。。百度要扣我分的!!!
C语言的结构体及指针
简单理解下,就是说把一些有内在联系的不同变量放在一起封装成一个整体,这就是结构体。指针,其实就是一个存放地址的变量,指针可以指向变量,数组,结构体等数据所在的内存单元。指针就是用来通过地址去找数据的,只要你把该数据的地址给指针,那么当你用到指向这个数据的指针时就等于在使用该数据。
一文了解 Go 中的指针和结构体
在Go语言中,指针和结构体是两种重要的数据类型,它们在编程中有着广泛的应用。指针可以简单地理解为一个地址,它指向某个变量的内存位置。例如,int类型对应的指针类型为\\*int,float64对应\\*float64,string对应\\*string。在定义指针时,如`npmPtr := &num`,`num`变量的地址为`0xc00001c098`,...
结构体指针,类指针是什么意思?
结构体是一个集合,类也是。一个就像原始人,一个就像现代人一样。指针:指向结构体的指针叫结构体指针。指向类的指针叫类指针。要我说,其实就是间接操作。有点像公司来了个新员工,你不知道名字,但是另一个人知道一样。你得通过另一个人才能找到那个新员工。
结构体指针,类指针是什么意思?
结构体 是一个集合,类也是。一个就像原始人,一个就像现代人一样。指针:指向结构体的指针叫结构体指针。指向类的指针叫类指针。要我说,其实就是间接操作。有点像公司来了个新员工,你不知道名字,但是另一个人知道一样。你得通过另一个人才能找到那个新员工。
指向结构体的指针应该怎么理解?
当一个指针变量指向结构体时,我们就称它为结构体指针。注意,结构体变量名和数组名不同,数组名在表达式中会被转换为数组指针,而结构体变量名不会,无论在任何表达式中它表示的都是整个集合本身,要想取得结构体变量的地址,必须在前面加&,所以给 pstu 赋值只能写作:struct stu *pstu = &stu1;...
如何正确的理解指针和结构体指针?
结构体指针与普通指针相似,它们也占4个字节的内存空间。结构体指针可以访问结构体内的成员,通过指针运算符'->'来实现。结构体指针的使用使得访问结构体内嵌成员变得更加直观。强制类型转换用于确保指针指向的数据类型与实际类型相匹配,防止类型不匹配引起的警告。例如,将数组转换为结构体类型,可以通过强制...
结构体指针和结构体中的指针的区别
结构体中的指针:指成员指针。3、用法不同:结构体指针:struct A{ int a; flaot b;};struct A m,*p=&m;p就是struct A类型的结构体指针,指向了同类型的结构体变量m。结构体中的指针:struct B { int a; float *b; struct B *next;};struct B m,n; float bb=1.1;m.b=&bb...
结构体中的指针表示的是什么意思啊?
表示成员选择(指针),选择结构体的成员变量。1、结构:运算符 -> 是指向结构体成员运算符,结合方向为自左向右。2、用法:对象指针->成员名。举例说明如下:
结构体指针是一个结构体吗
结构体是一个数据类型,结构体指针是一个指向这个数据类型的指针变量,它的本质是存放着指向一个该种结构体数据的地址,它的类型就是 该结构体指针。
关于结构体、结构体数组、结构体指针的定义及使用
结构体指针则指向存储在内存中的结构体,无论是单一结构体变量或数组。理解并掌握结构体指针的使用是提升编程能力的关键。包括包含结构体的结构体,这是嵌套层次结构的实例,如嵌套定义学生和出生日期的结构体。在实际项目中,结构体广泛应用于STM32标准库,封装外设功能,简化配置。而在产品系统参数中,...