字符串都要以地址形式来打印的 配合%s使用,name是地址,ptr也是地址
如果你在printf中用的是%p,%x,%d等输出符,那就是打印地址了
首先在C里面是没有“字符串”这种变量类型的,所有的字符串相关函数,操作的都是字符指针。
C的手册里规定字符串的存放方式为以地址定位点(在你给出的例子里即为char* ptr 这一字符指针
变量所储存的地址值)开始,一个一个字节依序存放的单字节数据(一个一个的字符变量),直到遇到
值为0的地方为止。
ptr=gets(name); 你的这行是从标准输入(默认为键盘)读取一系列输入,并把它存在name(数组的
变量名其实就是一个该类型的指针)起始的内存中,然后返回这段内存开始的地址,保存在prt中。
所以现在ptr其实是指向name的,所以printf时ptr和name是一样的内容
ptr是指针
是一个指向字符串的指针
printf里面的%s格式就是对付他的
他是根据地址找到字符串的
你的有什么问题,我按照你的编写,编译运行后两个都没有问题,请帖出你的错误,以便
分析。