c++字符串char*s与char s[]的区别与使用方法

1.char *a

    a是一个指向已知字符串的指针,实质是指针。

2.char arr[]

    arr本身是一个字符串数组,arr指向该数组的第一个元素,实质是数组。

3.char*a 与char arr[]

3.1 赋值区别

    在1中,s是数组名,当成是常量指针,不可以作为左值修改;而2中s是一个指针变量,可以将其指向一个字符串常量。


图1

图2

3.2 大小区别

char str[] = { "abcd" },sizeof(str) = 5,strlen(str) = 4

char *str = {"abcd"},sizeof(str) = 4,strlen = 4


str[]={"abcd"}

char *str = {"abcd"}

3.3 转换方法

3.3.1 把char arr[]赋值给char *a

    很简单: char arr[]={"qwer"};    char *a=arr;即可。

3.3.2把char* 赋值给char arr[]

    需要通过循环来一个一个地赋值

 

posted @ 2019-03-25 09:24  雷小军  阅读(5935)  评论(1编辑  收藏  举报