区别处理c语言中char ,char* ,char** ,char *[],
char =‘h'字符
char* a=“Hello world"
char** b=&a;//**b=H,指针的指针
char* arr[10]={"123","hello"};//数组里存放指针
1.结尾字符串的值为0x00//0
2.空格字符串的值为’ ‘//空格字符
#include <iostream>
#include <string>
using namespace std;
int main(int argc,char** argv)
{
//处理字符串 char*, char [], string
int i=0;
char* str="hello 0123456789 ";
string sstr="hello";
cout << sstr <<endl;
while( (*str) != 0)//判断字符结尾(0x00)
{
if(*str != ' ')//跳过空格
++i;
cout << *(str++);
}
cout<<'\n'<<i<<endl;//除空格字符外str字符串长度为15
//处理字符串数组 char** a 指向指针的指针b->a->char
//表示a是一个指针, 这个指针指向的地址存储的是 char * 类型的数据.
char* a="Char**3.1415926";//* a->char
char* * b=&a;//* b-> char*
cout <<**b<<endl;//C
//char* b[]数组里面放的是指针b[char* p]
//表示 b是数组, 数组中的元素是指针char*, 指向char类型
char *arr[10] = {"aBc","dEf"};//arr[0]可放10个char型指针,arr[1]可放10个char型指针....
cout << *(*arr+1)<<endl;//arr->arr[0] B
cout << *( *(arr+1)+1)<<endl;//arr+1->arr[1] E
return 0;
}
char * a="hello";
注意结尾字符串的值为0x00
;指针存储位置,数据存储位置
//处理字符串数组 char** a 指向指针的指针b->a->char
//表示a是一个指针, 这个指针指向的地址存储的是 char * 类型的数据.
char* a="Char**3.1415926";//* a->char
char* * b=&a;//* b-> char*
示意图
//char* b[]数组里面放的是指针b[char* p]
//表示 b是数组, 数组中的元素是指针char*, 指向char类型
char *arr[10] = {"aBc","dEf"};//arr[0]可放10个char型指针,arr[1]可放10个char型指针....
cout << *(*arr+1)<<endl;//arr->arr[0] B
cout << *( *(arr+1)+1)<<endl;//arr+1->arr[1] E