[求助] & 与 * 的所关联的动态内存
研究了一段时间的动态内存分配的问题,扯到指针上就有些疑惑了,比如以下代码:
程序代码:
#include "stdio.h"
int main(void)
{
/*正确代码*/
char * ch;
printf( "Input: ");
scanf( "%s", &ch);
printf( "\nOutput:%s",&ch);
return 0;
}
以上代码是正确的, 我的疑问就是如果将代码改成下面的形式就错了:
[code]
#include "stdio.h"
int main(void)
{
?
/*错误代码*/
char * ch;
printf( "Input: ");
scanf( "%s", ch);
printf( "\nOutput:%s",ch);
return 0;
}
由此, 感觉到, 其实用指针就可以完全代替字符数组实现动态内存分布了.
& 的含义貌似是"内存地址". 按照"正确代码"中的写法, 是不是可以理解为 把所输入的字符串传递给指针 ch 的地址呢? 如果成立的话, 是不是申明一个符指针, 就会自动地动态地给所申明的指针划分内存空间呢?






