c++字符串char*s与char s[]的区别与使用方法_学习笔记
1.char *a
a是一个指向已知字符串的指针,实质是指针变量 。
2.char arr[]
arr本身是一个字符串数组,arr指向该数组的第一个元素,实质是数组。
char c[] = "hello";
char* p_c = c;//c是一个指针常量
char one = 'c';
p_c = &one;
one = 111;
cout << one << c << p_c;
3.char*a 与char arr[]
3.1 赋值区别
在1中,s是数组名,当成是常量指针,不可以作为左值修改;
而2中s是一个指针变量,可以将其指向一个字符串常量。
3.2 大小区别
char str[] = { “abcd” },sizeof(str) = 5,strlen(str) = 4
char *str = {“abcd”},sizeof(str) = 4,strlen = 4
3.3 转换方法
3.3.1 把char arr[]赋值给char *a
很简单: char arr[]={“qwer”}; char *a=arr;即可。
3.3.2把char* 赋值给char arr[]
需要通过循环来一个一个地赋值