我很困惑为什么cout语句不在函数find_depth中打印数组c_braces_array的内容;Visual Studio(std :: cout)不打印我的变量值
我想要做的就是传递一个数组并打印它的值。
#include <iostream>
int find_depth(char c_braces_array[], int no_of_braces)
{
for(int i=0; i<no_of_braces; i++)
{
std::cout<<"val is:"<<c_braces_array[i]<<"F\n";
}
return 0;
}
int main()
{
char braces[100] = {0};
int ret_val = find_depth(braces, 100);
std::cout<<ret_val;
system ("pause");
return 0;
}
O/P:
...
val为:F
val为:F
val为:F
val为:F
val为:F
0按任意键继续。 。 。
编辑: 我初始化数组包含在主全0。所以我期待0打印。我不确定O(如在哦!)的事情发生在哪里。有人能解释一点吗?
我期待此O/P
val为:0,F
编辑 - 2: 专家感谢。感谢您指出错误。 另外我不明白为什么下面的行只用'a'而不是整个数组初始化花括号[0]。什么是正确的方式来初始化整个数组而不是运行for循环。
现在我的代码如下所示。
main(){
...
char a_char = 'a';
char braces[100] = {a_char};
}
find_depth(..)
{
...
std::cout<<"val is:"<<c_braces_array_ptr[i]<<"X\n";
}
O/P
内部主:一个
val为:AX
val为:X
val为:X
val为:X
val为:X
val为:X
val为:X
val为:X
字符“0”是一个空终止符,用于结束字符串,而不是“0”,它的ASCII值为“48”。你也不应该使用'system(“pause”)',因为你不能保证别人计算机上的'暂停'程序会做什么。 – chris
这是,但你的数组是空的。 – Ryan
由于您已将'braces'数组初始化为全0,它将打印'no_of_braces'空字符串。 –