01-02-1

news/2024/10/11 13:20:17/

1、day10作业

使用的代码

#include<stdio.h>
void change(int* i)
{*i=(*i) / 2;
}
int main()
{int i = 0;scanf("%d", &i);change(&i);printf("%d", i);return 0;
}
​

2、day11作业

使用的代码

#include<stdio.h>
#include<stdlib.h>
int main()
{char* p;int n;//存储申请多少字节的空间大小char c;scanf("%d", &n);p = malloc(n);scanf("%c", &c);//在使用gets()前,必须调用scanf()用于清除前面遗留的换行符,不然gets()读取的是换行符。gets特点是:读取到换行符后不再读取gets(p);puts(p);return 0;
}

总结:

malloc()申请空间的方法:定义指针,malloc()申请后返回值放到该指针中。

gets()接收数据的方法:参数是指针,将读入的数据放到该指针对应的空间中。

gets()scanf()之间一定要有一个scanf(),用于处理前面遗留的换行符,所以需要而外定义一个字符变量c,用于存放该换行符。

puts()输出数据:puts()的参数是指针,输出该指针对应空间中的数据。

3、day12作业

使用的代码

#include<stdio.h>
int step(int n)
{if (1 == n){return 1;}if (2 == n){return 2;}return step(n - 1) + step(n - 2);//返回n减去两种情况的递归之和
}
int main()
{int n;//存储台阶scanf("%d", &n);printf("%d", step(n));return 0;
}

说明

因为一次只能走1个c或2个台阶,所以到达第n级台阶有两种方法,从第n-2级直接上来,或从n-1级上 来。所以到达第n级台阶,一定是 step(n-1)+step(n-2) 的求和状态。所以在递归中,最后返回的是 step(n-1)+step(n-2) 的结果。

4、结构体

a.结构体的定义

a-1:语法:

struct 结构体名
{变量类型 变量名1;变量类型 变量名2;
};

使用的代码:
struct student
​
{int num;char name[20];char sex;   int age;float score;char addr[30];
};//结构体的声明

b.结构体的初始化

b-1:创建单个结构体变量

语法:

struct 结构体名 结构体变量 = {给结构体中的成员进行具体赋值}

代码:

//创建结构体的单个变量

struct student s = { 1001,"lele",'M',20,85.4,"Shenzhen" };

b-2:创建结构体数组

创建数组结构体语法:

struct 结构体名 数组名[数组大小]

代码:

//创建结构体数组

struct student sarr[3];

c.赋值语法

&数组名[下标].成员变量名

在赋值时,是否需要&:需要结合具体的成员变量时是否是数组,若是数组,则不需要&;若不是数组,

则需要&

代码:

for (i = 0; i < 3; i++)
​
{
​scanf("%d%s %c%d%f%s", &sarr[i].num, sarr[i].name, &sarr[i].sex,                               &sarr[i].age,&sarr[i].score, sarr[i].addr);
​
}

可以借助for循环进行循环赋值。

注意:.后是访问的具体变量。

d.访问结构体中的具体变量的方法

d-1:访问单个变量

语法:

结构体单个变量名.成员名

代码:

//访问单个结构体变量中的具体的成员变量

printf("%d %s %c %d %5.2f %s\n", s.num, s.name, s.sex, s.age, s.score, s.addr);

注意:当读取%s和%c同时出现时,中间一定要有一个空格,不然%c读取到的就是空格了。

d-2:访问结构体数组变量

语法:

数组名[下标].成员名

代码:

for (i = 0; i < 3; i++)
​
{
​printf("%d %s %c %d %f %s", sarr[i].num, sarr[i].name, sarr[i].sex,                 sarr[i].age,sarr[i].score, sarr[i].addr);
​
}
​
​

利用循环,对数组进行访问。

5、结构体指针

a.结构体大小

语法:sizeof(结构体名)

由于内存为了使地址对齐,会导致实际大小比人工通过加法运算得到的空间更大。对齐是为了更高效的取内存中的数据。

如下所示:

为了对齐,会把★处的两个空间,也算作该结构体的空间。

b.结构体指针的说明

b-1:创建结构体指针

语法:

struct 结构体名*指针名

代码:

struct student* p;

b-2:成员选择运算符

.

用于结构体变量在访问具体成员结果时使用

代码:结构体变量名.结构体成员名:得到该成员

->

用于结构体指针在访问具体成员结果时使用

代码:结构体指针名->结构体成员名:得到该成员

c.使用的代码:

struct student
{int num;char name[20];char sex;
};
int main()
{struct student s = { 1001,"wangle", 'M' };//创建结构体指针变量struct student* p;p = &s;printf("%d %s %c\n", (*p).num, (*p).name, (*p).sex);//注意:.的优先级比*(取值运算符)的优先级高printf("%d %s %c\n", p->num, p->name, p->sex);// 结构体数组初始化struct student sarr[3] = { 1001,"lilei",'M',1005,"zhangsan",'M',1007,"lili",'F'};//p是指针,sarr是数组首元素的地址,所以p指向的是数组首元素的地址。p = sarr;int num;printf("-----------------------------------\n");num = p->num++;// 当++表达式中的前面的运算符优先级更高时,则++的对象是整体:p->num:即是此整体进行++运算printf("num=%d,p->num=%d", num, p->num);//1001,1002num = p++->num;//此时++的对象是p这个指针,++后指向第二个元素1002,1005printf("num=%d,p->num=%d", num, p->num);// 后置++,表示先试用初始值,在进行++,所以此处先使用初始值为:p->num,再进行++:(p++)->numreturn 0;
}

注意:

1、.的优先级大于*的优先级

2、对于后置++的说明:

直接去除++后直接赋值,然后再++进行操作


http://www.ppmy.cn/news/1460711.html

相关文章

关于-RTSP推流方案, ffmpeg 视频转 m3u8

参考文章 https://zhuanlan.zhihu.com/p/668110375 增加fmpeg 执行单个视频推流 ffmpeg -re -stream_loop -1 -i 你视频的文件名 -c copy -f rtsp rtsp://127.0.0.1:8554/videohttps://blog.csdn.net/EthanCo/article/details/125321957 Windows下安装使用ffmpeg https://z…

网络安全建设应遵循的10条“黄金法则”

在当今的企业数字环境中&#xff0c;网络安全建设早已不是简单的IT技术问题&#xff0c;而是被上升到公司数字化转型发展和安全生产责任的治理层面&#xff0c;确保网络安全是每个现代企业组织都应努力实现的目标。然而企业要真正做好网络安全工作并不容易&#xff0c;很多组织…

基于PHP高考志愿填报系统搭建私有化部署源码

金秋志愿高考志愿填报系统是一款为高中毕业生提供志愿填报服务的在线平台。该系统旨在帮助学生更加科学、合理地选择自己的大学专业和学校&#xff0c;从而为未来的职业发展打下坚实的基础。 该系统的主要功能包括:报考信息查询、志愿填报数据指导、专业信息查询、院校信息查询…

R语言数据分析案例-股票题目分析

Value at Risk&#xff08;VaR&#xff09;是一种统计技术&#xff0c;用于量化投资组合在正常市场条件下可能遭受的最大潜在损失。它是风险管理和金融领域中一个非常重要的概念。VaR通常以货币单位表示&#xff0c;用于估计在给定的置信水平和特定时间范围内&#xff0c;投资组…

JSP ssm 房屋中介管理myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 JSP ssm 房屋中介管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采…

咸鱼之王游戏攻略:平民怎么起号?

在《咸鱼之王》这款游戏中&#xff0c;即使是平民玩家&#xff0c;也有着许多可以优化的操作&#xff0c;以最大程度地提高收益。本攻略将针对平民玩家的日常操作进行详细解读&#xff0c;包括黑市购买、资源管理等方面的建议&#xff0c;希望对广大玩家有所帮助。 一、黑市购买…

摘要Summaries--课时八(Lesson 8)

What will part 2 feel like? a lot deeper technically? Able to read and implement research papers? Models involve real life situations?Review build a neuralnet from scratch. How Pytorch create a neuralnet effortlessly? How Pytorch keep track of model w…

HackMyVM-VivifyTech

目录 信息收集 arp nmap nikto whatweb WEB web信息收集 wpscan feroxbuster hydra 提权 系统信息收集 横向渗透 git提权 get root 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:9d:6d:7b, …