小编Vik*_*rma的帖子

size_t和unsigned int之间的区别?

我很困惑size_t.我在互联网上搜索过并且提到的size_t是无符号类型,因此它可以表示非负值.

我的第一个问题是,如果它用于表示非负值,为什么我们不使用 unsigned int而不是size_t

我的第二个问题是:是size_tunsigned int可互换的?如果不是那么为什么?

谁能给我一个很好的例子size_t和简短的工作?

c unsigned types

86
推荐指数
5
解决办法
6万
查看次数

在scanf()格式字符串中尾随空格的影响是什么?

这段代码scanf("%d")和之间scanf("%d ")的区别是什么,其中差异是格式字符串中的尾随空白?

#include <stdio.h>

int main(void)
{
    int i, j;

    printf("enter a value for j ");
    scanf("%d  ",&j);
    printf("j is %d\n", j);
    printf("enter a value for i ");
    scanf("%d", &i);
    printf("i is %d\n", i);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

scanf()当我在格式说明符之后添加空格时,函数如何实际工作scanf("%d ", &j);

c scanf

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

运行没有服务器的React应用程序

在提出我的问题之前,我想告诉你,我是一个非常新的反应,直到现在我已经学会了非常基本的反应概念,如组件,状态,道具,路由器等.可能这个问题很有趣但我需要解决方案.如果我错了,请纠正我.

所以我的问题是,我们可以运行基于反应的应用程序,而无需在服 基本上,我想要,我可以直接在Web浏览器上使用index.html文件路径,我的应用程序开始工作.

我的理解是React js是一个javascript库,所有代码最终都使用babel加载器转换为普通的javascript文件(如果我们使用的是ES6).所以我认为应该可以做到这一点.

我发现我可以使用webpack,它在内部首先将我的基于React或其他js文件转换为普通的javascript,并制作一个可以在Index.html文件中使用的单个bundle文件以供进一步使用.我试过这个,但只有一些功能正常工作状态,道具但许多其他功能不像反应路由器,但当我使用npm服务器所有功能开始工作正常.

现在为什么我要这样做是因为我想使用react js来创建三星Tizen电视网络应用程序,我不认为我可以使用npm服务器和所有.

如果有人有任何解决方案,那将是非常有帮助的.谢谢

javascript tizen reactjs tizen-web-app react-router

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

putchar(),putch(),fputchar()之间的区别?

我从书中读到了这些概念,我在互联网上搜索了很多,但没有很好的定义和解释.它只是写在那里putch(),putchar()fputchar()以相同的方式工作,并用于打印字符到控制台,但我认为它们之间肯定有一些不同?

c

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

为什么我们不能隐式地从void*赋值给C++中的任何其他类型,但它在C中是首选?

根据这个

最好不要在C中强制转换malloc,因为如果转换malloc,则会隐藏将被标记的错误,导致很难找到错误.此外,在维护期间,如果指针的类型发生变化但铸件没有改变,则再次发现很难找到错误.最有经验的程序员选择的方法是:

p = malloc ( n * sizeof *p );
Run Code Online (Sandbox Code Playgroud)

malloc没有强制转换,因为不需要一个,而不是使用sizeof(type)来确定块的大小,而是使用sizeof*ptr.通过解除引用指针并获取其大小,可以给出正确的值,而不必担心如果指针的类型改变则修改分配请求.

但它不会在C++中编译.为什么?

这意味着如果malloc的返回被转换,那么将被标记的错误被隐藏?

c c++ malloc

6
推荐指数
2
解决办法
358
查看次数

如果我在运行前手动更改字节码会发生什么?

我有点好奇,如果我在执行前手动将某些内容更改为字节码,会发生什么.例如,假设将int类型变量赋值为字节类型变量而不从程序中的某处或任何导致编译时错误的内容中删除删除分号.据我所知,编译器在创建文件之前会检查所有编译时错误.那么当我成功编译程序后手动更改字节码后更改字节代码会发生什么?有没有机制来处理这个?如果不是,那么程序在执行后的行为如何?.class

编辑: -
作为热门舔,Darksonn和manouti已经给出了正确的满意答案.现在我只是为那些寻求这类问题的答案的读者做出结论: -

每个Java虚拟机都有一个类文件验证器,可确保加载的类文件具有适当的内部结构.如果类文件验证发现了一类文件有问题,它抛出一个异常.因为类文件只是一系列二进制数据,所以虚拟机无法知道某个特定的类文件是由一个善意的Java编译器生成的,还是由于一心想破坏虚拟机完整性的阴暗破解者.因此,所有JVM实现都有一个类文件验证程序,可以在不受信任的类上调用,以确保这些类可以安全使用.

请参阅了解更多详情.

java

5
推荐指数
1
解决办法
688
查看次数

按多列排序,包括按字段集合大小排序 spring jpa 存储库

我不认为它是Order by count 的副本,使用 Spring Data JpaRepository

让我解释一下我的问题:-

我有一个名为 Account 的域对象,它由名称、状态、组对象列表、成员对象列表组成。

例如:-

@Entity
public class Account {
    private String name;
    private String status;

    @OneToMany( cascade = CascadeType.ALL, mappedBy = "account",orphanRemoval = true)
    private List<Group> groups;

    @OneToMany(mappedBy = "account", cascade = CascadeType.ALL, orphanRemoval = true)
    private List<Membership> memberships;


    // getters and setters..

}


@Eintity
public class Group{
    // fields and getters setters..
}


@Eintity
public class Membership{
    // fields and getters setters..
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 spring 数据 JPA …

java spring hibernate querydsl spring-data-jpa

5
推荐指数
0
解决办法
1484
查看次数

常量存储在何处以及如何存储?

我从这里读到了这个问题,我也从c-faq中读到了相关问题,但我不明白这背后的确切原因: -

#include <iostream>

    using namespace std;

    int main()
    {
        //const int *p1 = (int*) &(5);  //error C2101: '&' on constant
        //cout << *p1;

        const int five = 5;
        const int *p2 = &(five);
        cout << *p2 << endl;

        char *chPtr = (char*) &("abcde");
        for (int i=0; i<4; i++) cout << *(chPtr+i);
        cout << endl;
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

我想知道如何存储常量(整数或字符串文字).我对字符串文字的理解是它们在程序启动时在全局静态内存中创建并持续到程序退出.在"abcde"即使我没有给它变量名称的情况下我也可以使用它的地址(chPtr)并假设我可能chPtr在程序终止之前的任何时候取消引用并且字符值仍然存在,即使我在范围之外取消引用它它被宣布的地方.const int变量是否"five"也放在全局静态中,并且该地址p2也可以随时引用?

为什么我可以拿地址,"five" …

c++ memory constants

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

将整数文字分配给指针?

这个问题可能太糟糕了,但我可以冒险在这里发布这个问题来解决我的困惑。

实际上我的问题是我们只能为指针分配地址,例如:-

int *p,a;
p = &a; // OK
p = 1; // Error because you cannot assign integer literal to p*  
Run Code Online (Sandbox Code Playgroud)

但是我们可以将 NULL 分配给 p 像:

p = NULL;
Run Code Online (Sandbox Code Playgroud)

实际上,NULL 是一个值为 0 的宏,在编译器编译此代码之前,它会被预处理器替换为 0。所以更换后它的样子

 p = 0;
Run Code Online (Sandbox Code Playgroud)

我知道这意味着 p 不指向任何内容,但根据规则,我们只能将地址分配给指针,但 0 是整数。所以这不是违反规则吗?

谢谢。

c c++ pointers

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

我有两个与getchar()和putchar()有关的问题

#include<stdio.h>

main()
{
char c;
c=getchar();
putchar(c);

c=getchar();
putchar(c);

c=getchar(); 
putchar(c);

c=getchar();
putchar(c);

c=getchar();
putchar(c);

}
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是,每当我们使用getchar()时,它都会在内存中的某个位置创建一个缓冲区,当我们按Enter键时,getchar()开始从缓冲区读取内容,而getchar()一次只能读取一个字符。因此,在上面的程序中,当执行第一个getchar()时,它将在内存中创建一个缓冲区,并且整行内容将存储在缓冲区中,假设当我按下Enter键时我写了“ vik” getchar()开始从缓冲区中读取内容,然后是“ v”将分配给变量c,然后只有'v'将从缓冲区清除,因为getchar()一次仅读取单个字符。然后在下一条语句中,putchar(c)在屏幕上打印“ v”。所以现在“ ik”getchar()语句执行它不会再询问用户写东西,因为除非并且直到缓冲区不会完全刷新,否则它不会再询问用户写东西,而是会从缓冲区读取内容。因此,这里的“ ik”仍然留在黄油中,因此在第二个getchar()语句中,从缓冲区读取“ i”,然后再次从缓冲区中刷新“ i”,putchar(c)打印“ i”。现在'k'在第三个getchar()执行时留在缓冲区中,从缓冲区读取'k'并赋值给c然后'k'也从缓冲区中冲洗掉。此时缓冲区已被完全冲洗掉,缓冲区中没有内容当第四个getchar()将会执行向用户写请求的操作,因为缓冲区中没有内容,所以假设我写“ as”并点击回车。 现在我的主要问题是,当我给两个内容“ as”时,还有两个getchar()和putchar(c)可以执行,那么为什么只有'a'会在屏幕上打印,为什么还没有's'?

而且,我的第二个问题是,如果说使用getchar()时在内存中创建一个缓冲区,那么如果使用fflush(stdin)则必须刷新该缓冲区。所以根据上面程序中的这个,当我在第一个putchar(c)之后而不是冲洗缓冲区之后写fflush(stdin)时,它执行并打印与上面程序相同的输出,为什么?

c putchar getchar

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