数组与指针的区别,求助
char *a="1234",与char a[]="1234";有什么区别?int main()
{
char a[]="12345",*p,*p1;
p=a;
*p=*(p+1); //在定义指针的时候这句不能执行,为什么?
return 0;
}
指针与数组的区别比较微秒,就提几点吧:
char ca[] = "Hello, world";
char *p = "Welcomt to C";
1. 在上面的代码中,ca是一个字符数组,你可以对数组元素进行修改,而指针p指向一个字符串常量,它是不可修改的(如果对其修改,这种行为是未定义的);
2. 数组名a是一个标号而已,不能对其进行修改(其根本就不是一个对象),而指针变量p是一个可修改的对象
3. 数组名在任何需要指针的地方可以自动转换成指针
如此云云,更多请参考:《数组和指针》