例如,查看以下(抽象)声明:
int (*) (*)
Run Code Online (Sandbox Code Playgroud)
//指向返回int且不带参数的函数的指针
(我从以下网站获得:http://www.vineetgupta.com/blog/deciphering-complex-c-declarations)
我认为只有无效意味着没有争论.这真的意味着同样的事情:
int (*) (void)
Run Code Online (Sandbox Code Playgroud)
如果是这样,它在哪里声明*可用于指定无参数?
另外,我是否正确假设这样的抽象声明只存在于类型转换中?如果是这样,那么它的当前形式必须是无效的,因为它缺少周围的括号吗?所以int(*)(void)无效,但是(int(*)(void))有效,不是吗?
我要检查if的/经营者有没有剩余或不:
int x = 0;
if (x = 16 / 4), if there is no remainder:
then x = x - 1;
if (x = 16 / 5), if remainder is not zero:
then x = x + 1;
Run Code Online (Sandbox Code Playgroud)
如何检查是否有剩余C?以及
如何实施它?
Scott Ambler在他的书" Java编码标准"中说,我很感兴趣,并引用:
2.5.2在比较的左侧放置常数
所以他建议使用
Run Code Online (Sandbox Code Playgroud)if ( 1 == something ) {…} if ( 0 = x ) { …}代替
Run Code Online (Sandbox Code Playgroud)if ( something == 1 ) {…} if ( x = 0 ) { …}
我的天啊 !!!
他通过这样说来激励这一点:
"虽然它们都是等价的,至少在第一次检查时,左边的代码编译而右边的代码没有."
我知道(当我开始编写Java时,Java 14已经在使用中),这两种情况都会引发编译器错误.
从Ambler语句开始,我试图搜索Java语法if ( x = 0 );是否可编译.
你能帮我解决这个问题吗?我搜索了不同版本的JSR,我没有发现任何可能表明该代码在其他java版本上进行编译的更改.
我使用目标和源1.2编译Jre7编译器仍然会引发编译器错误.不幸的是我没有Java 1.1编译器:9
我的问题是:
if(x = 0); 是否可与旧版Java编译器兼容?
我是 python 新手,尝试解析 json 文件并根据条件获取所需字段。
例如,如果 status = true,则打印名称
json文件:
[
{
"id": "12345",
"name": "London",
"active": true,
"status": "true",
"version": "1.0",
"tags": [
]
},
{
"id": "12457",
"name": "Newyork",
"active": true,
"status": "false",
"version": "1.1",
"tags": [
]
},
]
Run Code Online (Sandbox Code Playgroud)
预期输出:
名称 : 伦敦
请帮我解决这个问题。先感谢您。
我有一个名为test.txt包含以下内容的文件:
Line 1
Line 2
Line 3
Line 4
Run Code Online (Sandbox Code Playgroud)
我有这样简单的Python程序:
f = open("test.txt")
myline = "Line 3"
for line in f:
print myline + " - " + line
if myline == line:
print "We have a match!"
if myline == "Line 3":
print "This works."
Run Code Online (Sandbox Code Playgroud)
我得到了这个结果:
Line 3 - Line 1
Line 3 - Line 2
Line 3 - Line 3
Line 3 - Line 4
This works.
Run Code Online (Sandbox Code Playgroud)
为什么不"我们有匹配!" 打印?
我错过了什么?
我检查了stackoverflow网站的答案,我没有得到,所以我在这里发布.
我的问题是:
如何比较格式的两个时间戳
"Month Date hh:mm:ss"?
我用C和C++编写程序,时间是可显示的字符串格式.
示例:
time1 = "Mar 21 11:51:20"
time2 = "Mar 21 10:20:05"
Run Code Online (Sandbox Code Playgroud)
我想比较time1和tme2并找出是否time2在之后 time1,我需要输出为true或false,如下所示:
if time2 > time1 then
i need output as 1
or
0 or -1 anything
Run Code Online (Sandbox Code Playgroud)
我用过difftime(time2,time1),但它返回和diff之间的增量时间.
我想检查更大或没有. time1time2
如有任何帮助,请提前致谢
我已经根据给定的正则表达式制作了DFA,以匹配测试字符串。在某些情况下.*会发生这种情况。(例如.*ab)。假设现在计算机处于状态1。在DFA中,.*是指所有字符到其自身的过渡, 是指从状态1到a的另一过渡。如果测试字符串包含“ a”,则可能是过渡,因为从状态1开始,计算机可以进入两种状态,这在DFA中是不可能的。
我正在处理该代码,我试图使用x + 1而不是++x结果是无限循环并且在屏幕上打印了零.
这是代码:
#include <stdio.h>
int main(void){
int x;
for(x = 0; x <= 100; x + 1) //instead of ++x
printf("%d\t",x);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想知道这个动作.....为什么编译器没有产生这样的错误,,,,实际发生了什么?!! 并被x++视为x += 1?!
我在学习C方面遇到了一些问题,而且我真的没有其他地方可以提出建议.我来自一系列OOP语言,例如JavaScript和主要是Python,因此C是一个重大变化,我在尝试学习基础知识方面遇到了一些障碍.我最初是从Zed Shaw的"艰难学习C"开始的,但他并没有在书中教授任何东西.是的,他让你写了很多代码并改变了一些东西,但是我不知道为什么代码会工作,而这只会导致更复杂的例子.
我遇到的主要问题是变量和指针之间的区别(我认为它是非常独特的,直到我看到一些我将在下面发布的例子,这完全模糊了两者之间的界限).
例如,我理解声明和初始化一个int被调用的a和一个指针,p看起来像这样:
int a;
int *p;
a = 12;
p = &a;
Run Code Online (Sandbox Code Playgroud)
令我困惑的是当你声明看起来像指针的变量,但根本不是指针(或者它们是什么?).例如:
char *string = "This is a string";
printf("%s\n", string);
Run Code Online (Sandbox Code Playgroud)
什么string时候定义和初始化?它是指针吗?如果是的话,为什么不在printf函数中打印它时取消引用它?有很多像这样的例子让我很困惑.
我遇到的另一个例子没有任何意义:
int i;
scanf("%d", &i);
Run Code Online (Sandbox Code Playgroud)
i当&符号应该引用变量的内存中的位置而不是值时,这个函数如何更新整数的值?阵列和结构变得更加复杂,这是我停下来的地方,我决定要找一些建议.
老实说,我觉得很尴尬发布这样一个菜鸟问题,但每个人都从某个地方开始.这些基础知识是我知道在继续之前需要能够理解的东西,但是当我看到与我刚刚学到的内容相矛盾的代码示例时,我很难理解它.我知道这是一个非常普遍的问题,但我希望你们中的一些人能够解释这些基础知识,或者指出我可以更好地学习/理解这一点的方向.我遇到的大多数视频教程都过于笼统,与在线文本教程相同,他们告诉你如何做某事,但不解释它,这会导致一些严重的问题.
考虑以下测试程序
#include<stdio.h>
#include<stdlib.h>
#include <math.h>
int main()
{
double t = nan(NULL);
printf("%g\n",t);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译
/usr/local/bin/gcc -lm -o test test.c
Run Code Online (Sandbox Code Playgroud)
输出是预期的NaN.但是,如果我输入错误或犯了错误而遗漏了
#include <math.h>
Run Code Online (Sandbox Code Playgroud)
它编译好,没有错误,没有警告,但输出为0
如果我用-Wall它编译确实给出警告警告:隐式声明函数`nan'虽然这种行为似乎不仅仅是一个警告.是否有任何意义不停止编译?并且有没有人有任何建议如何阻止这导致相当大的文件的主要问题?
c ×6
python ×2
c++ ×1
comparison ×1
compilation ×1
convention ×1
dfa ×1
gcc ×1
java ×1
json ×1
kleene-star ×1
nfa ×1
pointers ×1
regex ×1
time ×1
version ×1