A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

是系统自定义 printf 函数 传入一个 指向字符串的 指针 ,就可以打印出来 还是什么希望大神替小弟解答下

10 个回复

倒序浏览
不太清楚你说的什么,还有你的技术分好高,怎么得到得
回复 使用道具 举报
定义了一个name指针来指向了it的地址,%s打印的字符串是name指向的it啊
回复 使用道具 举报
%s是用来输出字符串的,而且字符串的输出是从首地址直到遇到\0为止,所以可以全部输出
回复 使用道具 举报
%s就是打印字符串的啊,还有name只是一个指针
回复 使用道具 举报
其实你可以这么理解,你定义了name指向“it”,你输出的时候是用的%s,%s是输出字符串, 那么输出的时候它会从指针指向的那个地址开始输出 只到遇到‘\0’结束。如果你用%c就只输出一个字符了。
回复 使用道具 举报 1 0
int *s ="jack";
回复 使用道具 举报
dcf 发表于 2015-5-8 15:49
不太清楚你说的什么,还有你的技术分好高,怎么得到得

你首先定义了一个指向字符串的指针变量name,name存储的是字符串的第一个字符的地址,
调用printf(“%s",name)会从name指向的字符开始输出,直到name指向的字符串结束。
回复 使用道具 举报
你首先定义了一个指向字符串的指针变量name,name存储的是字符串的第一个字符的地址, 调用printf(“%s",name)会从name指向的字符开始输出,直到name指向的字符串结束。
回复 使用道具 举报
“it”里面是3个字符  “i”“t”“/0”,%s会打印指针指向的字符就是“i”,知道遇到“/0”停止,所以打印出来是“it”
回复 使用道具 举报
wangzhewjl 发表于 2015-5-9 09:52
其实你可以这么理解,你定义了name指向“it”,你输出的时候是用的%s,%s是输出字符串, 那么输出的时候它 ...

同意,指针*name指向字符串“it”的首字符,即:指针name中地址是字符‘i’的地址,只有遇到\0的时候才会终止
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马