01-02-1

news2024/11/25 22:55:22

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,1002
    num = p++->num;//此时++的对象是p这个指针,++后指向第二个元素1002,1005
    printf("num=%d,p->num=%d", num, p->num);// 后置++,表示先试用初始值,在进行++,所以此处先
    使用初始值为:p->num,再进行++:(p++)->num
    return 0;
}

注意:

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1671697.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现

标准库中的string&#xff1a;C初阶学习第六弹——string&#xff08;1&#xff09;——标准库中的string类-CSDN博客 前言&#xff1a; 在前面我们已经学习了如何使用标准库中的string类&#xff0c;但作为一个合格的程序员&#xff0c;我们不仅要会用&#xff0c;还要知道如…

Jmeter 性能-阶梯负载最终请求数

1、设置阶梯加压线程组请求参数 说明&#xff1a; 每隔2秒钟&#xff0c;会在1秒内启动5个线程 每次线程加载之后都会运行2s然后开始下一次线程加载 最终会加载50个线程并持续运行30s 50个线程持续运行30s后&#xff0c;会每隔2秒钟停止5个线程&#xff0c;剩余的线程继续负…

猫头虎分享已解决Error || ERROR: Failed building wheel for XXX

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

2005-2022年各省共同富裕指数数据(含原始数据+结果)

2005-2022年各省共同富裕指数数据&#xff08;含原始数据结果&#xff09; 1、时间&#xff1a;2005-2022年 2、来源&#xff1a;统计年鉴、各省年鉴 3、范围&#xff1a;31省 4、指标&#xff1a;年份、行政区划代码、地区、人均可支配收入_元、人均消费支出_元、恩格尔系…

Oracle: 一个用户多个表空间处理

1.场景描述 今天工作中&#xff0c;同事说建了一个用户&#xff0c;往里面导入数据时提示表空间不存在&#xff0c;建了表空间后&#xff0c;部分仍然导不进去。期望帮忙创建表空间&#xff0c;并指定默认表空间&#xff0c;成功将数据导入。 &#xff08;1&#xff09;创建好的…

WIFI模块的AT指令联网数据交互--第十天

1.1.蓝牙&#xff0c;ESP-01s&#xff0c;Zigbee, NB-Iot等通信模块都是基于AT指令的设计 初始配置和验证 ESP-01s出厂波特率正常是115200, 注意&#xff1a;AT指令&#xff0c;控制类都要加回车&#xff0c;数据传输时不加回车 1.2.上电后&#xff0c;通过串口输出一串系统…

【联合索引】最左匹配原则是什么?

什么是联合索引 联合索引&#xff08;Composite Index&#xff09;是一种索引类型&#xff0c;它由多个列组成。 MySQL的联合索引&#xff08;也称为复合索引&#xff09;是建立在多个字段上的索引。这种索引类型允许数据库在查询时同时考虑多个列的值&#xff0c;从而提高查询…

物联网五层架构分析

物联网五层架构分析 随着科技的迅速发展&#xff0c;物联网&#xff08;IoT&#xff09;作为日常生活中不可或缺的一部分&#xff0c;已融入人们的生活和工作中。物联网五层架构&#xff0c;包括感知层、网络层、数据层、应用层和业务层&#xff0c;扮演着关键的角色。 感知层 …

通往糊涂之路 The road to serfdom

最近被推送了一本书&#xff0c;哈耶克的............ 试一试&#xff0c;看看能不能看懂&#xff0c;也许是通往糊涂之路。

IMDB的电影评论数据pytorh使用lstm

使用lstm对IMDB的电影评论数据进行情感分析&#xff08;pytorch代码&#xff09; 接下来让我们看看如何使用pytorch实现一个基于长短时记忆网络的情感分析模型。在飞桨中&#xff0c;不同深度学习模型的训练过程基本一致&#xff0c;流程如下&#xff1a; 数据处理&#xff1…

鸿蒙开发接口Ability框架:【AbilityMonitor】

AbilityMonitor AbilityMonitor模块提供匹配满足指定条件的受监视能力对象的方法的能力&#xff0c;最近匹配的能力对象将保存在AbilityMonitor对象中。 说明&#xff1a; 本模块首批接口从API version 9 开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起…

C#之partial关键字

在C#中&#xff0c;partial关键字用于声明一个类、结构体、接口或方法的分部定义。这意味着可以将一个类或其他类型的定义分成多个部分&#xff0c;这些部分可以在同一个命名空间或程序集中的多个源文件中进行定义。当编译器编译这些部分时&#xff0c;会将它们合并成一个单独的…

LeetCode/NowCoder-链表经典算法OJ练习2

最好的&#xff0c;不一定是最合适的&#xff1b;最合适的&#xff0c;才是真正最好的。&#x1f493;&#x1f493;&#x1f493; 目录 说在前面 题目一&#xff1a;分割链表 题目二&#xff1a;环形链表的约瑟夫问题 SUMUP结尾 说在前面 dear朋友们大家好&#xff01;&…

【计算机网络】Socket网络编程

&#x1f4bb;文章目录 &#x1f4c4;前言Socket编程基础概念工作原理 Socket API介绍socket函数绑定、监听函数accept、connect接受/发送函数 Socket API的应用Socket类与其派生类的设计服务器与客户端的设计使用 &#x1f4d3;总结 &#x1f4c4;前言 现今我们的日常生活当中…

【爬虫基础1.1课】——requests模块上

目录索引 requests模块的作用&#xff1a;实例引入&#xff1a; 特殊情况&#xff1a;锦囊1&#xff1a;锦囊2: 这一个栏目&#xff0c;我会给出我从零开始学习爬虫的全过程。感兴趣的小伙伴可以关注一波&#xff0c;用于复习和新学都是不错的选择。 那么废话不多说&#xff0c…

sqli-labs 第十七关

目录 找注入点&#xff1a; 源码分析&#xff1a; 测试&#xff1a; 奇怪现象&#xff1a; &#xff08;1&#xff09;&#xff1a;当我们输入的密码为字符进行注入时。 &#xff08;2&#xff09;&#xff1a;当我们输入的密码为整数时。 产生原因&#xff1a; 解决方法…

孙宇晨对话大公网:香港Web3政策友好环境示范意义重大

日前,全球知名华文媒体大公网发布《湾区web3大有可为》重磅系列报道。报道通过对中国香港与大湾区其他城市Web3政策、行业创新和生态建设等方面的梳理,以及对行业领袖和重要行业机构的走访,全面展现了在大湾区一体化发展的背景下,Web3等数字经济模式在该地区的长远发展潜力。 …

基于Idea搭建Android开发环境

文章目录 下载SDK ManagerAndroid SDK Platform-toolsAndroid SDK Build-toolsAndroid SDKAndroid SDK Extras IDEA设置创建TestApp导入Android Studio创建的项目 下载SDK Manager SDK Manager是Google提供的&#xff0c;专门用于下载/管理&#xff0c;安卓开发中需要用到的工…

【MYSQL】一颗B+树可以保存多少条数据

引言 事万物都有自己的单元体系&#xff0c;若干个小单体组成一个个大的个体。就像拼乐高一样&#xff0c;可以自由组合。所以说&#xff0c;如果能熟悉最小单元&#xff0c;就意味着我们抓住了事物的本事&#xff0c;再复杂的问题也会迎刃而解。 存储单元 存储器范围比较大…

鸿蒙ArkUI开发:常用布局【交叉轴】

交叉轴 垂直于主轴方向的轴线。Row容器交叉轴为纵向&#xff0c;Column容器交叉轴为横向。通过alignItems属性设置子元素在交叉轴&#xff08;排列方向的垂直方向&#xff09;上的对齐方式alignSelf属性用于控制单个子元素在容器交叉轴上的对齐方式&#xff0c;其优先级高于al…