[求助] & 与 * 的所关联的动态内存
研究了一段时间的动态内存分配的问题,扯到指针上就有些疑惑了,比如以下代码:
程序代码:
#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 的地址呢? 如果成立的话, 是不是申明一个符指针, 就会自动地动态地给所申明的指针划分内存空间呢?