当前位置: 代码迷 >> C语言 >> [求助]关于指针的困惑
  详细解决方案

[求助]关于指针的困惑

热度:93   发布时间:2007-08-24 18:38:58.0
[求助]关于指针的困惑
正在学指针,看到一些不明白的地方,希望高手指点一二:
在一个视频教程看到说:
char a[10],*p;
scanf("%s",a); 正确
scanf("%s",p); 错误 但稍后又出现 scanf("%s",p),却说是正确的。这种形式到底对吗?

还有,在指针中:char a[10];
*p=a; p=a; p=&a; *p=&a;
以上四种写法正确吗?如果正确,又有什么区别吗?
搜索更多相关的解决方案: 指针  困惑  

----------------解决方案--------------------------------------------------------
只要有为p分配空间那就是对的,不然就是错的~~~~~
----------------解决方案--------------------------------------------------------
以下是引用tanjinglei在2007-8-24 18:38:58的发言:
正在学指针,看到一些不明白的地方,希望高手指点一二:
在一个视频教程看到说:
char a[10],*p;
scanf("%s",a); 正确
scanf("%s",p); 错误 但稍后又出现 scanf("%s",p),却说是正确的。这种形式到底对吗?

还有,在指针中:char a[10];
*p=a; p=a; p=&a; *p=&a;
以上四种写法正确吗?如果正确,又有什么区别吗?

p没有初始化,当然会错,p=a是对的,其他都错
----------------解决方案--------------------------------------------------------
如果我们没有定义数组```只要一个指针```比如P``

那么我们怎么样才可以给这个P分配一些空间呢```


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

用malloc开辟内存给它


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

那说说t=NULL吧
t 为指针型


----------------解决方案--------------------------------------------------------
以下是引用maoguoqing在2007-8-24 19:39:38的发言:

用malloc开辟内存给它

如果我定义一个*p(int)``那么用malloc给它开辟5个内存单元是不是这样用啊``:

int *p;
p=malloc(5);

这样以后p就有5个内存单元``想当于一个p[5]```???




----------------解决方案--------------------------------------------------------
int *p;
p=(int *)malloc(5*sizeof(int));???

[此贴子已经被作者于2007-8-24 19:57:14编辑过]


----------------解决方案--------------------------------------------------------
以下是引用栖柏在2007-8-24 19:56:37的发言:
int *p;
p=(int *)malloc(5*sizeof(int));???

看不懂```
为什么要在malloc前加(int *)
malloc后面的(5*sizeof(int))是什么意思啊```




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

请问你几个问题
请问int在内存占几个字节(sizeof),也许看编译器
你存的是int类型吧
存几个就乘几
前面不正是你声明的类型??


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