【C语言学习笔记】c语言结构体,结构体指针

目录

1.  ?:语句可以用来代替if else语句

2.scanf和getchar的区别:

3.gets和getchar的区别:

4.printf和puts的区别:

5.puts和putchar的区:

6.结构体:

1.结构体的结构

2.结构体初始化:

 3.结构体数组

4.指向结构的指针 :struct   结构体名  *指针名

4.获取结构体成员

7.rand(函数)


 

1.  ?:语句可以用来代替if else语句

使用方法      (表达式1)?(表达式2):(表达式3)

例:max=a>b?a:b      (a与b比大小,如果(if)表达式为真输出a,否则(else)输出b

2.scanf和getchar的区别

scanf会跳过空格,制表符,换行符。getchar只有回车时才结束。所以需要输入空格,制表符,换行符时可以使用getchar,不能使用scanf

3.gets和getchar的区别:

例如abcd  abab,gets函数认为是输入了(abcd  abab)这一字符串,getchar认为输入了(abcd)(abab)这两个字符串,且gets不需要一个一个字符输入,直接输入一个字符串,getchar是单个字符输入,且回车会被视为一个字符,而gets不会。

4.printf和puts的区别:

printf可输出的类型多,而puts只能输出字符串

5.puts和putchar的区:

puts输出字符串且换行,putchar输出字符且光标自动右移一个字符位

6.结构体

1.结构体的结构

struct结构名   {

结构体包含的变量或数组

 };

struct stu
{
    char name[];
    int num; //学号
    int age;
    char group;
    float score;
};//注意分号
//结构体变量
//第一种
struct student
{
//结构体包含的变量
};
struct student stu1,stu2;
//第二种,注意分号位置
struct student
{
//结构体包含的变量
}stu1,stu2;
//第三种
struct 
{
//结构体包含的变量
}stu1,stu2;

2.结构体初始化:

struct结构名   {

结构体包含的变量或数组

 }结构体变量={//根据结构体包含的东西进行一次初始化};

struct student
{
    char* a ;
    char* b ;
    int c ;
}stu1={"编程","ABC",123};
//或者
stu1.a="编程";
stu1.b="ABC";
stu1.c=123;
//如何打印?
printf("%s""%s""%d",stu1.a,stu1.b,stu1.c};

 3.结构体数组

struct student
{
//变量

}class[3]={//第一个人的信息初始化},{//第二个人的信息初始化},{//第三个人的信息初始化};//班上有3人,也可以不给数组长度

4.指向结构的指针 :struct   结构体名  *指针名

例如 struct student* stu;

        stu=&stu1;

        stu->age;//使为了使指针指向结构体成 员 要用->

struct student {

//变量
}stu1={//初始化};
struct student*p=&stu1;//把stu1的地址存入结构体指针p中


struct student {

//变量
}stu1={//初始化},*p=&stu1;//把stu1的地址存入结构体指针p中;
//两种方法

!!与数组不同,结构体要加&

4.获取结构体成员

(*p).a ;或p->a;

7.rand(函数)

rand()%100为输出0~99的随机数,使用时用头文件<stdlib.h>

srand((unsingned int )time(NULL))利用系统时间来刷新每一次的随机数,需要头文件<time.h>

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Flamingo۶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值