C語言結構體指針案例解析

寫結構體指針前,先說一下 號和 -> 的區別

記得當初剛學C語言的時候,搞不清結構體的 . 號和 -> ,經常混淆二者的使用。

那麼在C語言中 . 號是成員訪問運算符,當我們需要訪問結構的成員的時候,就會使用到它

而當我們需要使用結構體指針來訪問結構成員的時候,就得使用->運算符瞭

結構體指針栗子:

​#include<stdio.h>
#include<string.h>
 
typedef struct student{
int id;
char name[10];
char sex;
}stu;   //結構體別名
 
void PrintStu(stu *student);
int main()
{
    //結構體對象
    stu stu1;
    printf("sizeof of stu1 is:%d\n",sizeof(stu1));
    stu1.id=2014;
    strcpy(stu1.name,"zhangfei");
    stu1.sex='m'; 
    PrintStu(&stu1); 
 
    printf("***************\n");
 
	//結構體指針
	stu *s = (stu*)malloc(sizeof(stu)); //申請堆內存
	s->id = 2018;
	strcpy(s->name, "zhangfei");
	s->sex = 'g';
	PrintStu(s);
 
    return 0;
}
void PrintStu(stu *student)
{
    printf("stu1 id is :%d\n",student->id);
    printf("stu1 name is :%s\n",student->name);
    printf("stu1 sex is :%c\n",student->sex);
 
}
 
​

結構體指針,就是指向結構體的指針。

解釋C函數中的形參:

void PrintStu(stu *student)中的形參stu *student,說通俗點就是用來接住外部傳來的地址&stu1。

即 stu *student=&stu1; student可以取其他名字,形參並不是固定的。

到此這篇關於C語言結構體指針案例解析的文章就介紹到這瞭,更多相關C語言結構體指針案例內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: