鱼C论坛

 找回密码
 立即注册
查看: 25390|回复: 34

[知识点备忘] S1E17~18:数组

[复制链接]
发表于 2016-3-23 22:29:14 | 显示全部楼层 |阅读模式
购买主题 已有 25 人购买  本主题需向作者支付 5 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-29 11:00:15 | 显示全部楼层
这期视频PPT将C99的新特性时,好像有个数打错了,a[10]={[8]=[8]};
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 10 反对 0

使用道具 举报

发表于 2016-8-29 12:08:41 | 显示全部楼层
泳爸 发表于 2016-5-29 11:00
这期视频PPT将C99的新特性时,好像有个数打错了,a[10]={[8]=[8]};

呵呵,我也发现了。如果这样写编译会报错:error:expected expression before '[' toke
初始化可以混着来 int a[10] = {1, 2, 3, [3] = 4, [5] = 6, 7, [8] = 8}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-2-15 10:55:09 | 显示全部楼层
变长数组。。总感觉不靠谱
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-15 19:28:01 | 显示全部楼层
学到这了  没整明白。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-27 23:52:20 | 显示全部楼层
我试过了,小甲鱼老师在前面说过的那个不能实现的代码,好像是可以实现的,就是这篇文章最后c99新增的动态定义。是因为c99原因吗?@小甲鱼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2019-6-21 18:52:11 | 显示全部楼层
泳爸 发表于 2016-5-29 11:00
这期视频PPT将C99的新特性时,好像有个数打错了,a[10]={[8]=[8]};

小甲鱼疏忽了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 15:06:54 | 显示全部楼层
后面就是指针了   我有一点方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-21 10:05:41 | 显示全部楼层
那个getchar那个地方有点不明白,为什么不是“你输入的字符为:”这个地方换行,而是你输入的东西换行了呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-10 14:37:53 | 显示全部楼层
七星瞭望 发表于 2020-1-21 10:05
那个getchar那个地方有点不明白,为什么不是“你输入的字符为:”这个地方换行,而是你输入的东西换行了呢
...

我也没懂,知道了教教我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-22 14:24:26 | 显示全部楼层
变长数组 这个VS居然不支持。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-16 18:31:11 | 显示全部楼层
5.变长数组
那个
我用vs怎么不行。。。
萌新提问
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 17:59:06 | 显示全部楼层
#include<stdio.h>
int main()
{
        int n,i;
        printf("input the number of array[] ");
        scanf("%d",&n);
        printf("are you ready?");
        getchar();
        char array[n+1];
        for(i=0;i<n;i++)
        {
                scanf("%c",&array[i]);
        }
        array[i] = '\0';
        printf("the sentence of your input is: %s",array);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 19:40:55 | 显示全部楼层
triven 发表于 2020-2-22 14:24
变长数组 这个VS居然不支持。

我也是,后面指针的内容,也有几个在VS上不支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-25 21:57:47 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-17 22:41:50 | 显示全部楼层
1.我想咨询下甲鱼老师跟广大的网友,为什么我手机的账号密码登录不进去,然后电脑上的确是畅通无阻。我多么想温故而知新,又不能每时每刻的看电脑好吧。望解答
2.请开始输入字符后不打回车跟打回车的效果是一样的,那么getchar()在不打回车的情况下的作用是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-17 21:25:58 | 显示全部楼层
屁哥 发表于 2017-10-15 19:28
学到这了  没整明白。。。

个性签名有错字兄弟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-25 10:31:07 | 显示全部楼层
1000小千哥 发表于 2020-2-10 14:37
我也没懂,知道了教教我

为啥输出的I love fishc.com在“你输入的字符串是”的下一行,而且‘!’也被吞掉了,等于是在数组字符开始输入的时候前面多输入了一个回车,把n+1中本来属于!的位置占据了,那么这个多余的换行符是哪里来的呢?“请输入字符的个数”输入完成后,敲了一个回车,%d的数字n被读取了,回车没有被读取,然后这个回车就一直保存在了标准输入流(输入缓冲区)里面,在后面的for循环中再次输入字符(%c)时,第一个输入的是回车,占据了最后的‘!’的位置,因此就在for循环之前把这个回车换行符给丢掉即可:使用getchar读取它但不返回数值,功能就是将标准输入流中剩下的 '\n' 扔掉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-14 04:39:29 | 显示全部楼层
本帖最后由 qggncc 于 2020-9-19 04:42 编辑

变长数组这里有个bug,导致输入流中的\n也被算在数组内。建议在scanf函数下添加getchar();
#include <stdio.h>

int main()
{
        int n, i;

        printf("请输入字符的个数:");
        scanf("%d", &n);

        char a[n+1];

        printf("请开始输入字符:");
        getchar(); // 将标准输入流中剩下的 '\n' 扔掉
        for (i = 0; i < n; i++)
        {
                scanf("%c", &a[i]);
                getchar(); // 将标准输入流中剩下的 '\n' 扔掉
        }
        a[n] = '\0';
        printf("你输入的字符串是:%s\n", a);

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-16 13:46:28 | 显示全部楼层
打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 18:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表