当前位置: 代码迷 >> C语言 >> [帮]新手求教指针
  详细解决方案

[帮]新手求教指针

热度:501   发布时间:2004-06-08 18:26:00.0
[帮]新手求教指针

如果一个符指针变量不指向任何字符数组,能不能对它进行赋值,例:

char *p,a[10]; int i;

scanf("%s",a);

for(i=0;i<10;i++)

*p++=a[i];

可以这样写吗?

但我在书上发现了另外一个问题,函数如下:

swap(int *p1,int *p2)

{int *t; *t=*p1;*p1=*p2;*p2=*t;}

该函数有问题,因为t中没有具体的值,所以它所指向的地址是不可预见的。

但上面的能那样写吗?

请说明理由,谢谢!

[此贴子已经被作者于2004-06-08 18:26:59编辑过]

搜索更多相关的解决方案: 指针  

----------------解决方案--------------------------------------------------------
应该不可以的,其实上面和下面的是一码事.但下面的是谭书上的东东,是否在给t随机分配的内存中存在一个值,这样不是很影响,但如果数据占的空间很大,容易使系统发生以外,.是不是这样的,请高手指点.
----------------解决方案--------------------------------------------------------
为什么将一个字符数组的值赋给另一个字符数组要用strcmp函数,而赋给字符指针可以用“=”号,问题多多,望高手连同上面的问题一一解答,小弟不甚感激!

[此贴子已经被作者于2004-06-09 16:14:41编辑过]



----------------解决方案--------------------------------------------------------

*p++=a[i];

不可以,因为p还未指向一个变量,其值是不确定的,可能出错!

为什么将一个字符数组的值赋给另一个字符数组要用strcmp函数,而赋给字符指针可以用“=”号

给他的不是值,只是数组的首地址,指针中存放的是地址。


----------------解决方案--------------------------------------------------------
哦,谢谢高手!
----------------解决方案--------------------------------------------------------
int strcmp(char *str1,char *str2)
是字符串的比较。
*p++=a[i];写法是错的。

----------------解决方案--------------------------------------------------------

潭浩强书里不是写的很清楚么

指针指想的是地址 而地址里才是值!


----------------解决方案--------------------------------------------------------
  相关解决方案