关于C++语句char a[5]=“abc”; char *p=a; *p='d';说法正确的是_。(多选) A.数组名a是其地址 B.指针变量p存储的是a[O]的内存地址 C. a[4]的值为'\0' D. a[0]的值为'd'
时间: 2024-06-05 16:10:08 浏览: 10
正确的说法是:
A. 数组名a是其地址,即a等价于&a[0];
B. 指针变量p存储的是a[0]的内存地址,即p等价于&a[0];
C. a[4]的值为'\0',因为a数组的大小为5,而字符串"abc"只占用了3个元素,所以编译器会在a[3]的位置自动添加一个空字符'\0';
D. a[0]的值为'd',因为*p='d'语句将a[0]的值改为了'd'。因此,最终a数组中存储的字符串为"dbc"。
相关问题
关于C++语句char a[5]=”abc”; char *p=a; *p='d';说法正确的是_。 A.数组名a是其地址 B.指针变量p存储的是a[O]的内存地址 C. a[4]的值为'\0' D. a[0]的值为'd'
答案是D。解析如下:
- A选项:数组名a并不是其地址,而是数组首元素的地址。
- B选项:指针变量p存储的是a数组首元素的地址,即&a[0]。
- C选项:由于a数组长度为5,而字符串"abc"只占用3个字符,所以a[3]的值为'\0',而非a[4]。
- D选项:将指针变量p指向的地址的值赋为'd',即a[0]='d'。
string s="abc"调用什么构造函数
在 C++ 中,字符串的类型是 `std::string`。当你使用 `std::string s = "abc";` 这样的语句时,编译器会调用 `std::string` 的带有 `const char*` 类型参数的构造函数,该构造函数将字符串常量 "abc" 转换为 `std::string` 类型的对象。具体来说,这个构造函数是这样定义的:
```cpp
basic_string( const CharT* s,
const Allocator& alloc = Allocator() );
```
其中,`CharT` 是字符串类型的元素类型,即 `char`;`s` 是指向要复制的字符串的指针;`alloc` 是用于分配存储空间的可选分配器对象,默认为默认分配器。
因此,`std::string s = "abc";` 调用的构造函数是 `std::string` 的带有 `const char*` 参数的构造函数。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)