main()
存在2个有效版本C++
:
int main() // version 1
int main(int argc, char **argv) // version 2
Run Code Online (Sandbox Code Playgroud)
但两种重载都不能同时共存.为什么不?(潜在用例:从终端运行程序时,如果没有传递参数,则调用第一个版本,否则第二个版本被调用.)
编译器是否执行特殊检查以允许每个二进制文件只有一个版本?
在C/C++中,main函数接收类型的参数char*
.
int main(int argc, char* argv[]){
return 0;
}
Run Code Online (Sandbox Code Playgroud)
argv
是一个数组char*
,并指向字符串.这些字符串在哪里?它们是堆,堆栈还是其他地方?
我刚开始学习计算机科学。
我正在通过在哈佛在线教授的 CS50 学习。好吧,我正在解决这个问题,我需要在命令行中从用户那里获取密钥,然后是明文,然后将该文本转换为 ASCII 中的密钥数量以生成密文。
这是我到目前为止所得到的。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
int main(int argc, string argv[])
{
if (argc != 2)
{
printf("Usage: ./caesar key\n");
}
{
string plaintext = get_string("plaintext: ");
int key = atoi(argv[1]);
int n = strlen(plaintext);
char chr[n];
printf("ciphertext: ");
for (int i = 0; i < n; i++)
{
chr[i] = plaintext[i];
if (isalpha(chr[i]))
{
if (isupper(chr[i]))
{
chr[i] = (chr[i] - 65 + key) % 26 + 65;
printf("%c",chr[i]);
} …
Run Code Online (Sandbox Code Playgroud)