一: char * 与 char []
1.char * 与 char [] 的相同点:
两者都可以存储字符串,例如:char* p1="i love you"; char p2[]="i love you";
2.但是两者表达的意思完全不同:
char* 表示一个字符型指针,指向一个字符串常量区, 内容不允许修改。
char p2[] 表示一个内容可变的字符型数组,大小即为 内容长度 + 1 ('\n')
sizeof(char*)=4 , sizeof(char[])=11;
二:按需读取数据
char temp[]="0123";
int p1=*(char*)temp;
int p2=*(short*)temp;
int p3=*(int*)temp;
int p4=*(double*)temp;
printf("%x %x %x %x\n",p1,p2,p3,p4);
output:
30 3130 33323130 0
三:c++中的类
#include<iostream.h>
class A{
public:
A() {cout<<"原始构造函数\n";}
A(const A &a) {cout<<"拷贝构造函数\n";}
A(int i) {cout<<"带参数的构造函数\n";}
A& operator=(A &x) {cout<<"重载符号 = \n";return x;}
};
int main(int argc, char* argv[])
{
A a,b(4);
cout<<"=====\n";
A c[5];
cout<<"======\n";
A *p[2];
cout<<"======\n";
A d;
c[1]=c[0]=b=d=a;
cout<<"======\n";
return 0;
}
A operator=(A &x){cout<<"重载符号 = \n";return x;}
四:const 的用法汇总
//(* point to ) 从右至左读取
char * const cp;
cp 是一个常量指针,指向字符型变量
const char * cp; (同下)
cp 是一个指针变量,指向字符型常量
char const * cp; (同上)
const 如果放在*左边,表示指针指向的变量值不变。
const 如果放在*右边,表示指针的值不可变。