小编Mea*_*ead的帖子

MySQL Workbench 中的连接到底是什么?

我是数据库新手,已经完成了有关理论部分的基本“作业”,并开始通过 MySQL Workbench 使用 MySQL Server。

我创建了四个出现在 Workbench 主屏幕仪表板上的“连接”,并且还创建了一些表格。但是当我通过任何连接登录(使用用户名和密码)时,我可以看到我创建的所有表。那么谁能告诉我多个连接背后的意义是什么?MySQL Workbench 中的“连接”到底是什么?

我尝试用谷歌搜索它,在 StackOverflow 上搜索它,甚至参考 MySQL Workbench 的用户手册,但没有得到答案。

mysql mysql-workbench

9
推荐指数
1
解决办法
5554
查看次数

是否对函数的每次递归调用使用相同的静态变量?

根据我的理解,每个被调用的函数在程序堆栈中都有一些分配给它的内存,即使同一个函数递归调用自身(即每个调用在程序堆栈中都有自己的内存),这也是正确的.请回答以下两个问题:

如果变量在函数中声明为static,那么同一个变量/同一个副本是否会用于该函数的所有递归调用?

如果变量未声明为static(例如,简单地称为"int x"),那么对函数的每个递归调用是否都有自己的变量副本?如果是,那是从其他函数调用函数时通常会发生的方式,包括递归调用吗?

#include<stdio.h>
#include<stdlib.h>

int main()
{
    static int x=0;
    x++;
    printf("Team %d\n",x);
    if(x<10)
        main();
    else
        exit;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Team 1
Team 2
Team 3
Team 4
Team 5
Team 6
Team 7
Team 8
Team 9
Team 10
Run Code Online (Sandbox Code Playgroud)

c recursion static

4
推荐指数
2
解决办法
1万
查看次数

为什么rewind()在这个简单的程序中没有按预期工作?

为什么以下程序没有按预期打印新创建的文本文件("E")的第一个字符?这是一个简单的程序,我试图从各个方面看问题,但找不到原因.文本文件正在我的D盘上创建,内容为" EFGHI ",但由于某种原因,即使我使用倒带和读取并且输出为-1,也不会读取"E".getc()

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int x;
    FILE *fp;
    fp=fopen("F:\\demo.txt","w");
    if(fp==NULL)
        puts("Write error");
    fputs("EFGHI",fp);
    rewind(fp);

    x=getc(fp);
    printf("%d",x);
    fclose(fp);
}
Run Code Online (Sandbox Code Playgroud)

更新:

    #include<stdio.h>
    #include<stdlib.h>

    int main()
    {
        int x;
        FILE *fp;
        fp=fopen("F:\\demo.txt","w+");
        if(fp==NULL)
        {
            puts("Write error");
            exit(EXIT_SUCCESS);
        }
        fputs("EFGHI",fp);
        rewind(fp);

        while(!feof(fp))
        {
            x=getc(fp);
            printf("%d\n",x);
        }
        fclose(fp);
     }
Run Code Online (Sandbox Code Playgroud)

c filestream text-files getc rewind

4
推荐指数
1
解决办法
1128
查看次数

在C中,如果在块作用域中声明的对象没有链接,为什么main()中的函数声明没有"extern"工作?

据我所知,C中的对象有3种类型的链接:1)外部2)内部和3)无,并且在块范围内声明的对象,如在函数体内,没有链接,除非前面有关键字"extern"或"静态".

但是为什么然后下面的函数声明能够链接到main()函数下面的定义,即使我在声明期间没有使用"extern"?请解释一下,因为它完全颠覆了我对这个主题的理解.谢谢.

#include<stdio.h>

int main()
{
int foo();  //working even though I've not used "extern"
printf("%d",foo());
}

int foo()
{
return 8;
}
Run Code Online (Sandbox Code Playgroud)

上述计划的结果:8

c declaration function extern linkage

3
推荐指数
1
解决办法
568
查看次数

无论实现如何,'a' 到 'z' 的 ASCII 值不是从 97 到 122 连续的吗?一本好书却另有说法

我认为以下程序没有任何问题,并且不可移植性让我感到非常困惑。根据 Mike Banahan 的书(GBdirect C Book,第 2.4.2 节),以下程序是不可移植的。给出的理由是:

也许是另一个例子。如果您的实现连续存储其字符,这将打印出整个小写字母表,或者如果不是连续存储的,则打印出更有趣的东西。C 对内部形式中字符的顺序没有做出太多保证,因此该程序产生不可移植的结果!

那么,简单来说,你能解释一下下面的程序有什么问题吗?无论实现如何,字符的 ASCII 值是否都相同?我的意思是,“a”的值始终为 97,“b”的值始终为 98;那么为什么通过添加 1 来获得后者是不可移植的呢?

#include <stdio.h>
#include <stdlib.h>
main(){
      char c;

      c = 'a';
      while(c <= 'z'){
              printf("value %d char %c\n", c, c);
              c = c+1;
      }

      exit(EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)

c portability ascii char

3
推荐指数
1
解决办法
1292
查看次数

在C中,printf("你好")怎么能在任何情况下输出"大提琴"?

它完全忽略了我怎么能printf("Hello") 永远打印Cello.它挑战了我对C的基本理解.但是从最重要的答案(由Carson Myers撰写)关于Stack Overflow的以下问题,它似乎是可能的.你能用简单的语言解释一下它有什么可能吗?这是答案所说的:

每当你在你的源写一个字符串,该字符串是只读的(否则你将可能改变可执行文件的行为 - 想象一下,如果你写的char*A ="你好";然后将a [0]到"C ."然后,别的地方写的printf('你好’);.如果你被允许改变'你好’,你的编译器只存储一次(应该),那么的printf('你好’)的第一个字符;将输出大提琴!)

上述问题:是否可以修改C中的字符串?

c string

2
推荐指数
1
解决办法
232
查看次数

为什么"for(; i <= 10; i ++)"工作但"for(i = 0; i <= 10 ;;)"不是?

为什么第一个程序不起作用,但第二个程序不起作用?我的意思是,第二个程序给出了错误

"'之前的预期表达';'"

但是为什么然后它不会给"for(; i <= 10; i ++)"同样的东西,因为第一个表达式也缺失了?不是";;" 在第二个程序的"for(i = 0; i <= 10 ;;)"中表示空白表达式?最后,为什么"for(i = 0; i <= 10;)"在删除第二个分号后才起作用?

//Program 1
#include<stdio.h>

int main()
{
int i=1;
for(;i<=10;i++)
{
printf("%d\n",i);
}
}

//Program 2
#include<stdio.h>

int main()
{
int i;
//for(i=1;i<=10;) // This works but following doesn't
for(i=1;i<=10;;) 
{
printf("%d\n",i);
i++;
}
}
Run Code Online (Sandbox Code Playgroud)

c expression for-loop

-2
推荐指数
1
解决办法
6090
查看次数