小编Lin*_*oob的帖子

在C中声明和修改字符串

我最近开始尝试学习C编程语言.在我的第一个程序(简单的hello world事物)中,在我意识到我不能这样做之后,我遇到了声明字符串的不同方法variable_name = "string data":

char *variable_name = "data"
char variable_name[] = "data"
char variable_name[5] = "data"
Run Code Online (Sandbox Code Playgroud)

我不明白的是它们之间的区别.我知道它们是不同的,其中一个专门分配了一定数量的内存来存储数据,但这就是它,我觉得我需要在C中转移到更复杂的概念之前理解这一点.

此外,为什么使用*variable_name让我重新分配变量名到一个新的字符串,但variable_name[number]还是variable_name[]没有?当然,如果我给它分配10个字节(char variable_name[10] = "data")并尝试将其重新分配给10字节或更小的东西它应该工作,那么为什么不呢?

什么是空括号和星号?

c string variables

2
推荐指数
1
解决办法
89
查看次数

如何检查参数是否在C++中传递

我最近开始学习C++,我有点困惑argvargc.我试图通过检查大小来确定参数是否传递给程序argc,但不管有多少参数(包括没有)我传递给程序,它的大小总是如此4.

简单的例子:

int main(int argc, char** argv)
{
    std::cout << sizeof(argc); //outputs 4 with 0 or any num of arguments
    std::cout << sizeof(argv); //outputs 8 with 0 or any num of arguments
}
Run Code Online (Sandbox Code Playgroud)

我之前发现了同样的问题,我为重复它而道歉,但我发现的那些页面上的答案与这里发生的事情相矛盾.

那么,为什么argc总是4有没有其他方法来检查参数是否传递给main()

如果它是相关的我正在使用g ++进行编译.

c++ program-entry-point arguments g++ input

-1
推荐指数
1
解决办法
781
查看次数

标签 统计

arguments ×1

c ×1

c++ ×1

g++ ×1

input ×1

program-entry-point ×1

string ×1

variables ×1