[帮]新手求教指针
如果一个符指针变量不指向任何字符数组,能不能对它进行赋值,例:
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];写法是错的。
----------------解决方案--------------------------------------------------------
潭浩强书里不是写的很清楚么
指针指想的是地址 而地址里才是值!
----------------解决方案--------------------------------------------------------