Wesleyz 发表于 2018-4-3 04:44:07

如何打出成对的括号

我每次打括号都是从左到右按顺序打,但看视频时发现鱼哥每次打括号时都是成对成对的,百思不得其解他是怎么打出来的 难道是用了方向键?但是为什么他用vim时也可以成对打括号?vim里面应该是不能用方向键的吧?

另外,求大神解释一下为什么要成对打括号。我感觉这样反而效率变低了

人造人 发表于 2018-4-3 09:09:37

成对编写方便调试
请看下面代码
void deletelist(Dulinklist *L)//删除某指定元素并用返回其值
{
        int i, j, e;
        Dulinklist p, q;
        p = (*L);
        j = 0;
        printf("请问您想删除哪一号的元素内容:");
        scanf("%d", &i);
        while(p->next&&j<i - 1)
        {
                p = p->next;
                ++j;
        }
        if(!(p->next) || j>i - 1)
                printf("删除位置有误。\n");
        else
        {
                q = p->next;
                e = q->data;
                p->next = q->next;
                q->next->prior = p;
                free(q);

        }

}

假设我写到else后面时怀疑上面是不是哪里写错了?
我现在需要调试一下,看看上面那部分代码是不是按我预期那样工作

那么,按照你的想法,现在程序应该是这个样子
因为不是成对编写吗
void deletelist(Dulinklist *L)//删除某指定元素并用返回其值
{
        int i, j, e;
        Dulinklist p, q;
        p = (*L);
        j = 0;
        printf("请问您想删除哪一号的元素内容:");
        scanf("%d", &i);
        while(p->next&&j<i - 1)
        {
                p = p->next;
                ++j;
        }
        if(!(p->next) || j>i - 1)
                printf("删除位置有误。\n");
        else
        {

可是这样无法通过编译,因为括号不匹配

如果成对编写,那么程序现在应该是这个样子
void deletelist(Dulinklist *L)//删除某指定元素并用返回其值
{
        int i, j, e;
        Dulinklist p, q;
        p = (*L);
        j = 0;
        printf("请问您想删除哪一号的元素内容:");
        scanf("%d", &i);
        while(p->next&&j<i - 1)
        {
                p = p->next;
                ++j;
        }
        if(!(p->next) || j>i - 1)
                printf("删除位置有误。\n");
        else
        {
       
        }

}
然后我就可以调试了

Wesleyz 发表于 2018-4-3 14:03:03

人造人 发表于 2018-4-3 02:09
成对编写方便调试
请看下面代码



那怎样打出成对的括号呢?方向键?vim也是方向键吗?

alltolove 发表于 2018-4-3 14:10:28

那是编辑器的功能,sublime也可以打一个括号就出两个

人造人 发表于 2018-4-3 14:21:39

Wesleyz 发表于 2018-4-3 14:03
那怎样打出成对的括号呢?方向键?vim也是方向键吗?

方向键不行吗?

zhangddjs 发表于 2018-4-5 21:42:26

可能版本不同,或者就是用了插件或改了什么设置吧。
页: [1]
查看完整版本: 如何打出成对的括号