小编Jon*_*ler的帖子

订阅序列时Python中的::(双冒号)是什么?

我知道我可以使用类似于string[3:4]在Python中获取子字符串的东西,但3是什么意思somesequence[::3]

python syntax slice

237
推荐指数
11
解决办法
13万
查看次数

如何在C中正确使用extern关键字

我的问题是关于何时应该用externC中的关键字引用函数.

我没有看到何时应该在实践中使用它.在我编写程序时,我使用的所有函数都通过我包含的头文件提供.那么为什么extern访问头文件中没有公开的东西会有用呢?

我可能会想到如何extern正确地工作,如果是这样,请纠正我.

编辑:如果extern是头文件中没有关键字的默认声明,你应该做些什么吗?

c

227
推荐指数
7
解决办法
23万
查看次数

227
推荐指数
7
解决办法
50万
查看次数

访问数组越界有多危险?

访问其边界之外的数组有多危险(在C中)?有时候我会从数组外部读取(我现在理解我然后访问我的程序的某些其他部分使用的内存,甚至超过它)或者我试图将值设置为数组之外的索引.该程序有时会崩溃,但有时只是运行,只会产生意想不到的结果.

现在我想知道的是,这真的有多危险?如果它损坏我的程序,那就不是那么糟糕了.另一方面,如果它打破了我的程序之外的东西,因为我以某种方式设法访问一些完全不相关的内存,那么它是非常糟糕的,我想.我读了很多"任何可能发生的事情","分割可能是最不好的问题","你的硬盘可能会变成粉红色,独角兽可能会在你的窗下唱歌",这很好,但真正的危险是什么?

我的问题:

  1. 从阵列外部读取值会损坏我的程序之外的任何东西吗?我想象只是看事情不会改变任何东西,或者它会改变我碰巧触及的文件的'last time opened'属性?
  2. 除了我的程序之外,在数组外部设置值可以破坏任何东西吗?从这个 Stack Overflow问题我收集到可以访问任何内存位置,没有安全保证.
  3. 我现在从XCode中运行我的小程序.这是否为我的程序提供了一些额外的保护,它无法到达自己的内存之外?它会伤害XCode吗?
  4. 有关如何安全地运行我的固有错误代码的任何建议?

我使用OSX 10.7,Xcode 4.6.

c memory arrays

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

从fgets()输入中删除尾随换行符

我试图从用户那里获取一些数据并将其发送到gcc中的另一个函数.代码是这样的.

printf("Enter your Name: ");
if (!(fgets(Name, sizeof Name, stdin) != NULL)) {
    fprintf(stderr, "Error reading Name.\n");
    exit(1);
}
Run Code Online (Sandbox Code Playgroud)

但是,我发现它最后有一个换行符\n.所以,如果我输入John它最终发送John\n.如何删除它\n并发送正确的字符串.

c string gcc newline fgets

210
推荐指数
5
解决办法
30万
查看次数

bash脚本:如果参数等于此字符串,则定义一个类似于此字符串的变量

我正在做一些bash脚本,现在我有一个变量调用source和一个数组调用samples,如下所示:

source='country'
samples=(US Canada Mexico...)
Run Code Online (Sandbox Code Playgroud)

因为我想扩展源的数量(并且每个源都有自己的样本)我试图添加一些参数来做到这一点.我试过这个:

source=""
samples=("")
if [ $1="country" ]; then
   source="country"
   samples="US Canada Mexico..."
else
   echo "try again"
fi
Run Code Online (Sandbox Code Playgroud)

但是当我运行我的脚本时source countries.sh country它没有用.我究竟做错了什么?

bash scripting arguments

205
推荐指数
3
解决办法
37万
查看次数

如果不是内存地址,究竟什么是C指针?

在有关C的信誉良好的来源中,在讨论了&运营商之后给出了以下信息:

...有点不幸的是,术语[地址]仍然存在,因为它混淆了那些不知道地址是什么的人,并误导那些做的人:把指针当作地址通常会导致悲伤...... .

我读过的其他材料(来自同等声誉的来源,我会说)总是毫不掩饰地将指针和&操作符称为给出内存地址.我很想继续寻找事情的实际情况,但是当信誉良好的消息来源不同意时,这很难.

现在我有点困惑 - 究竟什么是指针,那么,如果不是内存地址?

PS

作者后来说:......我将继续使用"地址"一词,因为发明一个不同的 [术语] 会更糟.

c pointers memory-address

205
推荐指数
13
解决办法
3万
查看次数

对stdin,stdout和stderr感到困惑?

我对这三个文件的目的感到困惑.如果我的理解是正确的,stdin程序写入其在进程中运行任务的请求stdout的文件是内核写入其输出stderr的文件,并且请求它的进程从中访问信息,并且是文件到输入所有例外情况.在打开这些文件以检查这些文件是否确实发生时,我发现似乎没有任何建议!

我想知道的是这些文件的目的究竟是什么,用非常少的技术术语绝对愚蠢地回答!

linux stdin stdout stderr

199
推荐指数
7
解决办法
23万
查看次数

如何将find命令返回的文件列表传递给cat以查看所有文件

我正在做一个find然后获取文件列表.如何将其传输到另一个实用程序cat(以便cat显示所有这些文件的内容),并且基本上需要grep从这些文件中获取内容.

unix pipe find

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

如何在Visual C++中保持控制台窗口打开?

我开始使用Visual C++,我想知道如何保持控制台窗口.

例如,这将是典型的"hello world"应用程序:

int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Hello World";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我错过的是什么?

console visual-c++

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