啪啪啪:动态数组|学习笔记

简介: 快速学习啪啪啪:动态数组

开发者学堂课程【你的第一门 C 语言课快速学习啪啪啪:动态数组】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/444/detail/5468


啪啪啪:动态数组


动态数组案例

C 语言不允许修改在运行中的数组中的空间大小,不能定义动态数组

#incLude .h>

int main( )

{

int n,i;

printf("请输入字符的个数; ");

scanf ("%d" &n) ;

//定义一个字符数组,不仅定义了动态数组

char a[n+1 ]

printf("请开始输入字符: ");

//依次传入数组中

for(i=0;i

{

scanf("%C",&a[i]) ;

//a[i]其实就是一个变量

}

a[n] ='\0' ;

//输出结果

printf("你输入的字符串是: s\n",a) ;

return 0 ;

}

保存退出运行gcc test1.c&&./a/out

结果:

请输入字符的个数:17

请开始输入字符: I Love FishC. com !

你输入的字符串是:I Love FishC. com[fishc@localhost s1e18]$

结论:

c++也能执行变长数组,在执行过程中来指定变量数组的长度

ISOC99中允许可变长度的自动阵列,并且作为扩展 GCC 接受 C90模式和 C++。这些数组的声明与任何其他 automatie 数组一样,但其长度不是常量表达式。储藏室是在声明点分配,并在包含声明的块8609B 退出时解除分配。

修改代码:

#incLude .h>

int main( )

{

int n,i;

printf("请输入字符的个数; ");

scanf ("%d" &n) ;

//定义一个字符数组,不仅定义了动态数组

char a[n+1 ]

printf("请开始输入字符: ");

//添加getchar();读取换行

getchar();

//依次传入数组中

for(i=0;i

{

scanf("%C",&a[i]) ;

//a[i]其实就是一个变量

}

a[n] ='0' ;

//输出结果

printf("你输入的字符串是: s\n",a) ;

return 0 ;

}

保存退出运行gcc test1.c&&./a/out

结果:

请输入字符的个数:17

请开始输入字符: I Love FishC. com !

你输入的字符串是:I Love FishC.Com

[fishc@localhost s1e18]$

结论:修改完成后,代码显示正常

 测试访问数组边界(故意出错版)

#include

int main( )

int a[10],i;

for(i=0;i<=10;i++)

{

a[i] = i;

}

for(i=0;i<=10;i++)

{

printf( "%d\n",a[i]);

}

return 0 ;

保存退出运行gcc test2.c&&./a/out

结果:

0

1

2

3

4

5

6

7

8

9

10

结论:发现并没有报错

这样程序出错时不会出现毁灭性错误

修改为正确代码:

#include

int main( )

int a[10],i;

for(i=0;i<10;i++)

{

a[i] = i;

}

for(i=0;i<=10;i++)

{

printf( "%d\n",a[i]);

}

return 0 ;

保存退出运行gcc test2.c&&./a/out

结果:

0

1

2

3

4

5

6

7

8

9

10

发现结果一样,这就是访问数组边界

目录
打赏
0
0
0
0
55
分享
相关文章
YOLOv11改进策略【注意力机制篇】| WACV-2021 Triplet Attention 三重注意力模块 - 跨维度交互注意力机制优化
YOLOv11改进策略【注意力机制篇】| WACV-2021 Triplet Attention 三重注意力模块 - 跨维度交互注意力机制优化
295 1
YOLOv11改进策略【注意力机制篇】| WACV-2021 Triplet Attention 三重注意力模块 - 跨维度交互注意力机制优化
阿里云云原生NDR发布:全流量防御能力升级
阿里云发布云原生NDR,提供全流量威胁检测与响应能力。该产品无需部署,支持一键接入、自动留存攻击报文,并具备多引擎关联分析、资产风险管理等功能,有效提升高级威胁应对能力。典型客户案例显示,NDR在重保防护、敏感数据泄露和日志合规等场景中表现出色。总结来看,NDR强调原生化、性价比和强检测,帮助用户简化安全运营并降低成本。
159 11
C3P0数据库连接池
C3P0数据库连接池
237 0
云存储的安全性:保护你的数据的技术探索
【8月更文挑战第8天】云存储的安全性是保障用户数据安全的重要基础。通过数据加密、访问控制、多副本备份、网络安全和物理安全等多种技术手段,云存储服务提供商能够为用户提供安全可靠的存储服务。然而,用户也需要加强自身的安全意识和管理措施,共同维护云存储环境的安全稳定。
PostgreSQL 执行计划,成本公式解说,代价因子校准,自动跟踪SQL执行计划(二)|学习笔记
快速学习PostgreSQL 执行计划,成本公式解说,代价因子校准,自动跟踪SQL执行计划(二)
PostgreSQL 执行计划,成本公式解说,代价因子校准,自动跟踪SQL执行计划(二)|学习笔记
获取网站绝对路径常用方法
获取网站绝对路径常用方法
372 1
【阿里云镜像】配置阿里云镜像——Manjaro 镜像
【阿里云镜像】配置阿里云镜像——Manjaro 镜像
791 0
【阿里云镜像】配置阿里云镜像——Manjaro 镜像
阿里云ace认证考试难吗?阿里云认证考试报名方式有哪些?
最近几年比较火的阿里云ace认证考试也是引起了很多网友们的热烈关注,那么这个阿里云ace认证考试难吗?阿里云认证考试报名方式有哪些?下面就让认证大使给大家解答一下相关的疑问。
959 1
阿里云ace认证考试难吗?阿里云认证考试报名方式有哪些?
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等