关于C中字符串指针与printf()的问题

2024-11-17 19:00:29
推荐回答(5个)
回答(1):

字符串都要以地址形式来打印的 配合%s使用,name是地址,ptr也是地址
如果你在printf中用的是%p,%x,%d等输出符,那就是打印地址了

回答(2):

首先在C里面是没有“字符串”这种变量类型的,所有的字符串相关函数,操作的都是字符指针。

C的手册里规定字符串的存放方式为以地址定位点(在你给出的例子里即为char* ptr 这一字符指针

变量所储存的地址值)开始,一个一个字节依序存放的单字节数据(一个一个的字符变量),直到遇到

值为0的地方为止。

ptr=gets(name); 你的这行是从标准输入(默认为键盘)读取一系列输入,并把它存在name(数组的

变量名其实就是一个该类型的指针)起始的内存中,然后返回这段内存开始的地址,保存在prt中。

所以现在ptr其实是指向name的,所以printf时ptr和name是一样的内容

回答(3):

ptr是指针
是一个指向字符串的指针
printf里面的%s格式就是对付他的

回答(4):

他是根据地址找到字符串的

回答(5):

你的有什么问题,我按照你的编写,编译运行后两个都没有问题,请帖出你的错误,以便
分析。