请问,在C语言中,怎么用结构体指针引用成员变量?怎么对成员变量赋值?

struct Info
{
char name[10];
char sex[1];
int age;
int score;
char stop;
struct Info *next;
} ;
typedef struct Info NODE;然后运用链表知识,创建链表,显示链表,销毁链表。在创建链表中,怎么对char name[10]赋值?在显示链表中怎么引用name[10]的值?就类似于如下程序: pnew->name = name;
pnew->sex= sex;
pnew->age = age;
pnew->score = score;
pnew->next = NULL;
tail->next = pnew;
tail = pnew;//赋值
puts(p->name);//引用
puts(p->sex);
printf ("%d ",p->age);
printf ("%d ",p->score);如果把数组name和sex注释掉,则运行没问题,解决一下。

你的
pnew->name = name;
是不对的,字符串的拷贝应该用strcpy函数,比如
strcpy(pnew->name, "My Name");
之后再
puts(p->name);
就没问题了
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-14
对于字符串正确的做法是这样:strcpy(pnew->name, "灰太狼");如果是结构中的数组,则应该用memcpy函数幅值。把分交出来吧
第2个回答  2013-07-14
和正常使用字符串是一样的,p->name就是字符串。也可以p->name[0]去特定字符。

C语言中结构体的成员变量怎么引用
1、如果结构体中的成员均为一般变量(包括结构体变量),则使用“.”,如果成员变量为指针(不管指向什么,包括结构体),则使用“->”。2、如果定义了结构体数组指针,则可分别使用“.”和“->”,区别在于指针带下标时,以是数组形式访问,此时用“.”,如果不带下标(或使用偏移),此时用“->...

如何在c语言中使用p-> x?
1、首先定义一个人的结构体。结构体中的每个成员都需要指明类型,如上例所示,姓名为char字符类型、年龄为int类型,身高为double类型。2、声明结构体即声明了一种用户自定义数据类型,在平时编写代码时一般用使用typedef直接定义其类型,如下图所示。3、定义结构体变量与普通的C语言变量是一样的。man zs...

C语言结构体指针成员所指向的变量如何访问?
第一种写法:(*a).p=&b;.的优先级高于*,(*pointer)两边的括号不能少。如果去掉括号写作*pointer.memberName,那么就等效于*(pointer.memberName),这样意义就完全不对了。第二种写法:a->p=&b;->是一个新的运算符,习惯称它为“箭头”,有了它,可以通过结构体指针直接取得结构体成员;这也...

c语言结构体函数指针怎么赋值
指针就是指向内存的某个地址的一个变量。结构体指针就是这个指针变量的值必须指向存放该结构体的内存位置。当这个指针没有任何指向时,可以赋值为null值,但是改指针不可使用,程序中应该做判断。下面是一些赋值演示。struct student{ int id;int score;} aaa;struct student *p = null;\/\/结构体指针p...

C语言中如何以结构体变量的地址作为函数形参,以便将指向结构体变量的指...
C语言中,所有的变量都存储在内存中,可以通过&运算符获得变量的内存地址,函数调用时,只需要把普通变量前加上&符号,就可以达到传递变量地址的目的。例如:定义一个结构体类型 struct Yearmonthday{ int year, month, day;};定义相关函数,参数类型指定为结构体类型指针 void input(struct Yearmon...

C语言结构体成员的引用问题
是指针间的赋值,必须保证左右操作数的指针类型是一致的。由于n是结构体sk的第一个变量,因此其地址与结构体变量地址相同,可以强制转换得到正确的地址。c是一个二维数组,p是一个指向数组的指针,因此p的*运算都是得到一个数组,**运算才能取到数组中的值。只有D是**运算。

C语言中如何把结构体变量定义在主函数内,再调用一个自定义输入函数和输...
;}void output(struct test *p)\/\/输出函数,以指针作为参数。这里也可以以结构体变量作为参数,不过用指针效率更高。{ printf("%d\\n", p->a);}int main(){ struct test v;\/\/定义结构体变量v。 input(&v);\/\/输入。 output(&v);\/\/输出。 return 0;} ...

C语言结构体指针成员所指向的变量如何访问?
首先定义一个包含所有可能情况的结构体:struct test { int a;int *p;};struct test t1, *t2;1 结构体\/指针成员\/所指向的变量。结构体中有指针成员,然后要访问这个结构体成员指向的变量值。那么可以*(t1.p)这种方式对p取值。2 结构体指针\/成员\/所指向变量。这种情况有两种方法可以访问:(t2->...

c语言结构体指针如何定义和使用
struct stu { char name[20];long number;float score[4];} ;再定义指向结构体类型变量的指针变量:struct stu *p1, *p2 ;定义指针变量p 1、p 2,分别指向结构体类型变量。引用形式为:指针变量→成员;

C语言结构体的取结构体里参数的问题。。。
你好,是这样的,假如是->的话,这个元素就是一个指向结构体的指针,既然是指针,所以取原本结构体的数据就要用->这个符号,那假如本来就是结构体这个元素的话,取当中的成员就可以直接用.例如struct p{ char a;int num }ss;struct p *q;q=ss;假如要去a成员就可以用 q->a或者ss.a ...

相似回答