Stroustrup,第5章,导航数组 [英] Stroustrup, chapter 5, navigating arrays

查看:67
本文介绍了Stroustrup,第5章,导航数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经创建了一个打印数组元素的程序。

程序编译没有蚂蚁麻烦但是我得到了一些

奇怪的输出:


-------------------程序---------------------- ----

#include< iostream>


void print_array(char ar [])

{

std :: cout<< 打印元素:;

for(char * p = ar; * p!= 0; p ++)

std :: cout<< * p<< " \t";


std :: cout<< " \ n";

}

int main(){

char v1 [] = {''1'',' '2'',''3''};

char v2 [] = {'''',''b'',''c''};


print_array(v1);

print_array(v2);

}


---- ---------------输出---------------------------------- -

[arch @ voodo cpp] $ ./a.out

打印元素:1 2 3? ? ?

? H ? ? ? ? G ? ??

? ? ? @? ? H?

? ? ? G ? ? ?

打印元素:a b c 1 2 3

? ? ? ? H ? ? ? ?G

? ? ? ? ? ? @?

? H ? ? ? ? G ?? ?

[arch @ voodo cpp] $

i have created a programme that prints the elements of an array.
programme is compiled without ant trouble but i am getting some
strange outputs:

------------------- PROGRAMME --------------------------
#include <iostream>

void print_array(char ar[])
{
std::cout << "printing elements:";
for(char* p=ar; *p !=0; p++)
std::cout << *p << "\t";

std::cout << "\n";
}
int main() {
char v1[] = { ''1'', ''2'', ''3'' };
char v2[] = { ''a'', ''b'', ''c''};

print_array(v1);
print_array(v2);
}

------------------- OUTPUT -----------------------------------
[arch@voodo cpp]$ ./a.out
printing elements:1 2 3 ? ? ?
? H ? ? ? ? G ? ??
? ? ? @ ?  H ?
? ? ? G ? ? 
printing elements:a b c 1 2 3
? ? ? ? H ? ? ? ?G
? ? ? ? ? ? @ ?
 H ? ? ? ? G ?? 
[arch@voodo cpp]$

推荐答案

./ a.out

打印元素:1 2 3? ? ?

? H ? ? ? ? G ? ??

? ? ? @? ? H?

? ? ? G ? ? ?

打印元素:a b c 1 2 3

? ? ? ? H ? ? ? ?G

? ? ? ? ? ? @?

? H ? ? ? ? G ?? ?

[arch @ voodo cpp]
./a.out
printing elements:1 2 3 ? ? ?
? H ? ? ? ? G ? ??
? ? ? @ ?  H ?
? ? ? G ? ? 
printing elements:a b c 1 2 3
? ? ? ? H ? ? ? ?G
? ? ? ? ? ? @ ?
 H ? ? ? ? G ?? 
[arch@voodo cpp]







事情是什么时候你初始化一个数组,然后它是

不会自动Null终止。我的意思是它有3个元素。

你需要添加第4个元素以确保只打印3个元素

out。见下文。
The thing is that when you initialise an array that way, then it is
not automatically Null terminated. I mean it has exacly 3 elements.
You need add a 4th element to ensure only 3 elements will be printed
out. See below.

------------------- PROGRAM ----------- ---------------

#include< iostream>


void print_array(char ar [])

{

std :: cout<< 打印元素:;

for(char * p = ar; * p!= 0; p ++)

std :: cout<< * p<< " \t";


std :: cout<< " \ n";


}


int main(){
------------------- PROGRAMME --------------------------
#include <iostream>

void print_array(char ar[])
{
std::cout << "printing elements:";
for(char* p=ar; *p !=0; p++)
std::cout << *p << "\t";

std::cout << "\n";

}

int main() {



char v1 [] = {''1'',''2'',''3'',''\ 0''};

char v2 [] = { ''a'',''b'','c'',''\ 0''};

char v1[] = { ''1'', ''2'', ''3'', ''\0'' };
char v2[] = { ''a'', ''b'', ''c'', ''\0'' };


>

print_array(v1);

print_array(v2);


}


-------------------输出----------- ------------------------

[arch @ voodo cpp]
>
print_array(v1);
print_array(v2);

}

------------------- OUTPUT -----------------------------------
[arch@voodo cpp]


这篇关于Stroustrup,第5章,导航数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆