首页 > 用户发贴区 > 编程问题提问区 > 初学者关于指针的问题
2007
09-21

初学者关于指针的问题

今天复习C语言的时候遇到了个问题,请大家帮忙解决下,菜鸟我谢谢各位了.



char *p=”computer”;


printf(“%s\n”,p);



int i,*p=&i;


……


printf(“%d”,*p);


我的问题就是:为什么在输出char型时候printf后面的指针用p,而在输出int型时却用*p?


不是都应该用*p吗?


初学者关于指针的问题》有 5 条评论

  1. zhaoxiangyi7 说:

    书上错了呗

  2. 对夹菜豆 说:

             书上没错!不过  ,这个说起来是很麻烦的!一句两句是说不清的!

  3. newgo 说:

    为什么%S用P,如果你学过函数的话应该可以了解到,函数有按值传递与按地址传递两种

    如果要输出一串的字符,当然必须用按地址传递.如果按值传递了,那不是只能输出第一个字符了,当然如果你用值进行传递也会出错的,其它的就输不了了…

    printf其实是一个标准库的函数,说白一点也是函数,只不过是常用的,被定义出来的..

    如果还是不懂,就好好研究一下指针变量与函数的传递参数

  4. a89700887 说:

    谢谢各位.明白了.

  5. s_ok_s 说:

    貌似字符串就是数组么··

    数组地址直接就是P的值么···

    不需要再指向了吧···

    我也不知我的说法是否正确··

留下一个回复