今天复习C语言的时候遇到了个问题,请大家帮忙解决下,菜鸟我谢谢各位了.
…
char *p=”computer”;
printf(“%s\n”,p);
…
int i,*p=&i;
……
printf(“%d”,*p);
我的问题就是:为什么在输出char型时候printf后面的指针用p,而在输出int型时却用*p?
不是都应该用*p吗?
>> 本文固定链接: http://www.vcgood.com/archives/1833
今天复习C语言的时候遇到了个问题,请大家帮忙解决下,菜鸟我谢谢各位了.
…
char *p=”computer”;
printf(“%s\n”,p);
…
int i,*p=&i;
……
printf(“%d”,*p);
我的问题就是:为什么在输出char型时候printf后面的指针用p,而在输出int型时却用*p?
不是都应该用*p吗?
>> 本文固定链接: http://www.vcgood.com/archives/1833
你必须先 登录才能发表评论。
书上错了呗
书上没错!不过 ,这个说起来是很麻烦的!一句两句是说不清的!
为什么%S用P,如果你学过函数的话应该可以了解到,函数有按值传递与按地址传递两种
如果要输出一串的字符,当然必须用按地址传递.如果按值传递了,那不是只能输出第一个字符了,当然如果你用值进行传递也会出错的,其它的就输不了了…
printf其实是一个标准库的函数,说白一点也是函数,只不过是常用的,被定义出来的..
如果还是不懂,就好好研究一下指针变量与函数的传递参数
谢谢各位.明白了.
貌似字符串就是数组么··
数组地址直接就是P的值么···
不需要再指向了吧···
我也不知我的说法是否正确··