C语言 中&和 请参照这个程序#include#define NULL 0struct student{int num;float score;struct student *next;};void main(){struct student *head,a,b,c,*p;a.num=8011;a.score=90.5;b.num=7022;b.score=99;c.num=7033;c.score=88;head=&a;a.next=&b;b.nex
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 04:27:08
C语言 中&和 请参照这个程序#include#define NULL 0struct student{int num;float score;struct student *next;};void main(){struct student *head,a,b,c,*p;a.num=8011;a.score=90.5;b.num=7022;b.score=99;c.num=7033;c.score=88;head=&a;a.next=&b;b.nex
C语言 中&和
请参照这个程序
#include
#define NULL 0
struct student{
int num;
float score;
struct student *next;
};
void main(){
struct student *head,a,b,c,*p;
a.num=8011;a.score=90.5;
b.num=7022;b.score=99;
c.num=7033;c.score=88;
head=&a;
a.next=&b;
b.next=&c;
c.next=NULL;
p=head;
do{
printf("%d,%5.1f\n",p->num,p->score);
p=p->next;
}while(p!=NULL);
}
C语言 中&和 请参照这个程序#include#define NULL 0struct student{int num;float score;struct student *next;};void main(){struct student *head,a,b,c,*p;a.num=8011;a.score=90.5;b.num=7022;b.score=99;c.num=7033;c.score=88;head=&a;a.next=&b;b.nex
&是取址运算符,作用是提取一个变量的地址.
比如你定义了一个变量,那么在编译时,系统就会在内存中分配一个空间.
而这个空间在内存中的位置就是它的地址.&就提取它的地址.
e.g int a;在编译时就给它分配一个地址,比如是2000;&a就是2000.
假如先定义了一个整型指针变量p,p=&a;就是把a的地址2000赋给p.运行后p=2000.
又如scanf("%d",&a);当你输入3时,它会先根据&a知道a的地址,由地址找到a在内存中的空间,再把3写入这个空间.
*是指针运算符,作用与&相反,它是根据变量的地址取出变量的值.
比如,*a的值就是变量a的值3.
下面是定义和声明中用到指针的小结
int *p; 定义一个指向整型数据的指针.
int *p[n]; 定义指针数组p,它由n个指向整型数据的指针元素组成.
int (*p)[n]; p为指向含n个元素的一维数组的指针变量.
int *p(); p为返回一个指针的函数,该指针指向整型数据.
int (*p)(); p为指向函数的指针,该函数返回一个整型值
int **p; p是一个指针变量,它指向一个指向整型数据的指针变量.
如果你想系统的了解建议你可以看看谭浩强的《c程序设计》(第三版)这本书通俗易懂.是学习c语言不错的教材.