[求助]关于指针的困惑
正在学指针,看到一些不明白的地方,希望高手指点一二:在一个视频教程看到说:
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;
以上四种写法正确吗?如果正确,又有什么区别吗?
正在学指针,看到一些不明白的地方,希望高手指点一二:
在一个视频教程看到说:
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));???
int *p;
p=(int *)malloc(5*sizeof(int));???
看不懂```
为什么要在malloc前加(int *)
malloc后面的(5*sizeof(int))是什么意思啊```
----------------解决方案--------------------------------------------------------
请问你几个问题
请问int在内存占几个字节(sizeof),也许看编译器
你存的是int类型吧
存几个就乘几
前面不正是你声明的类型??
----------------解决方案--------------------------------------------------------