int main()
{
char *a ="hello";
char p[] = "hello";
printf("c\n",*p); // p为首地址,输出h
printf("%c\n", p[0]); // p[0], 输出h
printf("%c\n", p); // p为地址,地址转char,乱码
cout << *p << endl; // p为首地址,输出h
cout << p[0] << endl; // p[0], 输出h
cout << p << endl; // 输出hello
cout << sizeof(p[2]) << endl; // 输出1
printf("-------------------\n");
printf("c\n", a); // a为首地址,输出h
printf("c\n", a[0]); // a[0], 输出h
printf("%c\n", a); // a为地址,地址转char,乱码
cout << *a << endl; // a为首地址,输出h
cout << a[0] << endl; // a[0], 输出h
cout << a << endl; // 输出hello
}
C++中char*p和char p[]问题
本文探讨了C++编程中`char*p`和`char p[]`两种定义字符数组的方式,详细解释了它们在内存分配、使用场景及安全性上的差异,帮助开发者更好地理解和运用这两种类型。
摘要由CSDN通过智能技术生成