关于c++数组

来源:百度知道 编辑:UC知道 时间:2024/06/14 13:13:59
下面一个小程序
#include <stdio.h>

void Initialize (char * a, char * b)
{
a[0] = 'T'; a[1] = 'h'; a[2] = 'i';
a[3] = 's'; a[4] = ' '; a[5] = 'i';
a[6] = 's'; a[7] = ' '; a[8] = 'A';
a[9] = '\0';
b = a;
b[8] = 'B';
}

#define ARRAY_SIZE 10
char a[ARRAY_SIZE];
char b[ARRAY_SIZE];

int main(int argc, char * argv[])
{
Initialize(a, b);
printf("%s\n%s\n", a, b);
return 0;
}

书上说在b=a这句话时b的地址已经被丢弃了,这句话是什么意思?a=b到底是什么效果呢(a和b的地址及值都发生了什么变化)
#include <stdio.h>

#define ARRAY_SIZE 10
char a[ARRAY_SIZE];
char b[ARRAY_SIZE];

void Initialize (char * a, char * b)
{
int i;
a[0] = 'T'; a[1] = 'h'; a[2] = 'i';
a[3] = 's'; a[4] = ' '; a[5] = 'i';
a[6] = &

这个程序你可以运行出结果吗?
我怎么运行没有东西可以输出呢~~~
还有,a,b好像只能表示数组的第一个元素,而且数组赋值不能像b=a这样直接赋值。
我认为b=a后,b的第一个元素的地址就丢弃原来自己的地址去a的第一个的地址了。