我用C编写了这段代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
char string1[20];
char string2[20];
strcpy(string1, "Heloooo");
strcpy(string2, "Helloo");
printf("%d", strcmp(string1, string2));
return(0);
}
Run Code Online (Sandbox Code Playgroud)
控制台打印值是1还是字符和字符ASCII值之间的差值,即111?在这个网站上写道,这应该给出111,但当我在我的笔记本电脑上运行时,它显示1.为什么?o\0
我的问题是,如果在javascript中,我创建一个数组a = [2, 3, 4, 5]并输入 a[5] = 10,然后a.push(5)编译器将数组的末尾添加5或第一个未定义的位置?
我发现它增加了数组的末尾,就是这样a[6] == 5.但后来我的问题是编译器如何找到一个数组已经结束?当然,如果数组识别出未识别的值,则无法确定数组是否已结束,因为数组将在值5之后结束.那么,它是如何知道数组已经结束的呢?
这段代码有什么问题?
printf("%d", pow(2, 10));
Run Code Online (Sandbox Code Playgroud)
因为使用的格式说明符是整数,所以它应该给出一个整数值.但事实并非如此.为什么这样 ?
输出 - 0
预期输出 - 1024
我输入以下代码:
char *a;
char b = 'd';
a = b;
printf("%c", a);
Run Code Online (Sandbox Code Playgroud)
输出 - 'd'.
我的查询是,因为a是指针变量,它应该存储地址.为什么在这种情况下存储字符值?