一直有这个疑问,并且经常纠结,今天终于搞明白了。


char*name1;

charname2[20] ;// char *name不能用scanf,没开辟空间指针只能接受地址默认为8个字节

NSLog(@"%lu,%lu",sizeof(name1),sizeof(name2));//打印结果为8,20,字符数组真正开辟了20个空间,指针只是默认有8个字节来接收地址,scanf只是接受数值而没有空间,所以不能用定义指针接受




分享一下今天的经验有帮助的话可以转载,有问题也可留言或评论,大家一起讨论。