C++ C类型字符串

来源:百度知道 编辑:UC知道 时间:2024/06/21 04:00:35
#include <iostream>

int main(void)
{
char *p="abc"; //请问这条语句是拿a初始化p么?但是为何int *p=6这样就
//不正确呢?有什么区别
cout << *p <<endl;
}

这个是因为字符串的特殊性决定的。
"abc"的值(指用于右值的时候)其实是其地址,而6是其本身不是它的地址。

因此前者对后者错。

没分,路过。(回去好好看看书吧!)

int main()
{
char *p="abc";//等同于char *p;p="abc";使用字符串"abc"的地址来初始化p;
int *p;//相当于于你定义了一个指向整形空间的指针,但是这个指针你没有初始化。又怎么能赋值呢?
p=malloc(sizeof(int));//所以要先分配空间。。
*p=6;//可以这样做