- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的老师告诉我们使用“&”来将值存储到我们想要的变量中,但是,我尝试使用 scanf() 并尝试将值存储到一些没有“&”的变量中,我注意到它仍然工作正常吗?尽管我认为它没有影响,但它是否无论如何都会影响我的代码?
这是我试过的代码。该代码是用于检查第二个输入是否为子字符串的部分。我老师教的原形:
int main(){
char word1[100], word2[100];
int length1, length2;
printf("Enter the a word: \n");
scanf("%s", &word1);
printf("Enter the potetial substring: \n");
scanf("%s", &word2);
for(length1=0; word1[length1]!='\0'; length1++);
for(length2=0; word2[length2]!='\0'; length2++);
if (length1<length2)
{
printf("Second input is not a substring.\n");
}
然后我调整了程序要求输入的部分:
printf("Enter the a word: \n");
scanf("%s", word1);
printf("Enter the potetial substring: \n");
scanf("%s", word2);
即使我删除了“&”,我仍然得到相同的输出。希望有人可以解释此更改是否以我可能不知道的某种方式影响了我的代码,谢谢。
最佳答案
C 数组在评估上下文(例如传递给 scanf
的参数)下表示为指向类型的指针,其中类型是数组的基础元素类型。因此word
表示为char*
。地址结果是第一个元素的结果。
然而,&word1
评估为相同 地址,但键入为 char (*)[100]
(因为这正是您所要求的为了)。这是相同的地址,因此针对 %s
说明符的 scanf
仍然“有效”(松散使用的术语)。
您的编译器应该会发出警告,告诉您预期的参数类型是 char*
而您正在提供 char(*)[100]
。如果没有,请调高警告。
总结; %s
的正确语法是传递一个 char*
。在这种情况下,这是通过 word1
获得的(冲洗/重复 word2
)。它可以使用寻址运算符工作,但没有理由在这种情况下使用它,并且有充分的理由不这样做。
关于c - 将值寻址到某个变量时 "&"的重要性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54167360/
在 GGally::ggpair 的最新版本中,相关值用 * 显示,如下图所示。我想删除 *s 并保留相关值。 我看过 ggpairs 代码,但它对我来说并不明显。 GGally::ggpairs(d
在 GGally::ggpair 的最新版本中,相关值用 * 显示,如下图所示。我想删除 *s 并保留相关值。 我看过 ggpairs 代码,但它对我来说并不明显。 GGally::ggpairs(d
我正在尝试使用在 weka 库中实现的 SVM 分类来对一些数据进行分类。我的分类代码如下所示: BufferedReader reader = new BufferedReader(new File
我已经为 jdbm 构建了 Lucene Directory 实现,一个嵌入式Java数据库。 Directory API 的一部分是与"file"修改日期相关的两个方法:touchFile 和 fi
我的任务是编写一个函数,将文件中单词的长度与整数进行比较,然后返回所有符合该大小的单词。我得到的答案几乎相同,除了我没有像他们那样包含 string.strip() : def get_words(d
xgb.importance 命令返回由 f score 衡量的特征重要性图。 这个f分数代表什么,它是如何计算的? 输出: Graph of feature importance 最佳答案 这是一个
有一个二元分类问题:如何获得 Ranger 模型变量的 Shap 贡献? 示例数据: library(ranger) library(tidyverse) # Binary Dataset df %
如今 servlet 在哪里使用? 我知道 servlet 是在面向请求/响应的服务器(例如支持 Java 的 Web 服务器)中运行的模块。但是现在我没有听到任何人使用 servlet。这可能是因为
我是一名优秀的程序员,十分优秀!