如何理解不能用字符串给字符数组赋值

c和指针(《pointers on c》) 8.1.11

一个字符串,如"hello",一般为字符串常量,可以用它对字符指针赋值,或初始化,相当于把这个字符串常量的首地址赋给这个指针,如:

char *p = "hello"; 

或者

char *p;

p="hello";

但是,当用"hello"给字符数组作初始化时,"hello",并非一个字符串常量,而是相当于一个初始化列表{'h','e','l','l','o','\0'},在其他任何时候,它都表示一个字符串常量。而数组名也是一个指针常量,不能对常量赋值。所以

char a[] = "hello"; //正确,hello",并非一个字符串常量,而是相当于一个初始化列表

char a[6];   

a = "hello"; //错误,a为指针常量,不能修改,当然也不能赋值

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码创建一个String类型的数组,并将字符串赋值给它: ```java String[] myArray = new String[3]; // 创建一个长度为3的String数组 myArray[0] = "第一个字符串"; // 将字符串赋值给数组的第一个元素 myArray[1] = "第二个字符串"; // 将字符串赋值给数组的第二个元素 myArray[2] = "第三个字符串"; // 将字符串赋值给数组的第三个元素 ``` 也可以使用以下代码来实现更为简洁的赋值操作: ```java String[] myArray = {"第一个字符串", "第二个字符串", "第三个字符串"}; ``` 这样就可以创建一个String类型的数组,并将字符串赋值给它。 ### 回答2: Java中创建String数组并将字符串赋值给String数组的方法有多种。以下是其中一种常见的做法: ```java // 创建一个长度为3的String数组 String[] strArray = new String[3]; // 直接赋值法 strArray[0] = "Hello"; strArray[1] = "World"; strArray[2] = "Java"; // 输出数组元素 for (int i = 0; i < strArray.length; i++) { System.out.println(strArray[i]); } ``` 运行上述代码后,控制台将依次输出字符串数组中的三个元素:"Hello"、"World"、"Java"。 除了上述直接赋值法外,还可以使用以下方式将字符串赋值给String数组: 1. 使用大括号初始化法: ```java String[] strArray = {"Hello", "World", "Java"}; ``` 2. 使用循环遍历的方式赋值: ```java String[] strArray = new String[3]; String[] tempArray = {"Hello", "World", "Java"}; for (int i = 0; i < strArray.length; i++) { strArray[i] = tempArray[i]; } ``` 无论使用哪种方式,最终结果都是将对应的字符串赋值给String数组,可以通过下标来访问和操作数组中的元素。 ### 回答3: 在Java中,我们可以使用`String`类来创建一个`String`类型的数组,然后再将字符串赋值给这个数组。 首先,我们需要声明一个`String`类型的数组变量,可以指定数组的长度或者在赋值时自动根据赋值的元素个数确定数组的长度。 例如,声明一个长度为5的`String`类型数组: ```java String[] strArray = new String[5]; ``` 接下来,我们可以通过索引的方式将字符串赋值给数组元素。索引从0开始,最大索引为数组长度减1。 例如,将字符串赋值给数组的第三个元素: ```java strArray[2] = "Hello"; ``` 除了通过索引逐一赋值外,我们还可以使用循环结构批量赋值。 例如,使用`for`循环将多个字符串赋值给数组: ```java String[] strArray = new String[3]; String[] strings = {"Java", "Python", "C++"}; for (int i = 0; i < strArray.length; i++) { strArray[i] = strings[i]; } ``` 这样,我们就成功创建了一个`String`类型的数组并将字符串赋值给其中的元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值