给字符数组赋值java_给字符数组赋值的方法

main()

{

char s[30];

strcpy(s, "Good News!"); /*给数组赋字符串*/

.

.

.

}

上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留

出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为

Turbo C2.0的函数)时, 首先在目标文件的某处建立一个"Good News!/0" 的字符串。

其中/0表示字符串终止, 终止符是编译时自动加上的, 然后一个字符一个字符地复

制到s所指的内存区域。因此定义字符串数组时, 其元素个数至少应该比字符串的

长度多1。

注意:

1. 字符串数组不能用"="直接赋值, 即s="Good News!"是不合法的。所以应分

清字符串数组和字符串指针的不同赋值方法。

2. 对于长字符串, Turbo C2.0允许使用下述方法:

例如:

main()

{

char s[100];

strcpy(s, "The writer would like to thank you for"

"your interest in his book. He hopes you"

"can get some helps from the book.");

.

.

.

}

指针数组赋值

例如:

main()

{

char *f[2];

int *a[2];

f[0]="thank you"; /*给字符型数组指针变量赋值*/

f[1]="Good Morning";

*a[0]=1, *a[1]=-11; /*给整型数数组指针变量赋值*/

.

.

.

}

------------------------------------------------------------------------------------------------------------------

补充:

无论是静态,局部还是全局数组只有在定义时才能初始话,否则必须通过其它方法,比如循环操作实现。

任何

int a[3];

static int b[3];

a[3] = {1, 2, 3};

b[3] = {1, 2, 3};

没有在定义时初始化都是错误的!

-------------------------------------------------------------------------------------------------------------------

以下是转载:

学了这么多年的C语言,突然发现连字符串赋值都出错,真的很伤心。

char a[10];

怎么给这个数组赋值呢?

1、定义的时候直接用字符串赋值

char a[10]="hello";

注意:不能先定义再给它赋值,如char a[10]; a[10]="hello&

你可能感兴趣的:(给字符数组赋值java)