这段代码的解释,望C牛人帮俺解惑。

今天写了段C字符串的代码,以下是我的理解:

    // printf在输出字符串或字符数组时,是从指针开始的位置一直往后输出,直到发现字符'\0'停止
    char ss[] = {'c','b','c','d','\0','K'};
    char *p = ss;

    // 这里传入的是ss数组的首字符的地址,输出cbcd
    printf("%s\n", p);
    // 这里传入的是ss数组的首字符的地址对应的值,就是c
    printf("%c\n", *p);

以上理解是否正确呢?新手望解惑!

阅读 4.6k
5 个回答

我猜是对的(如果实际输出没错的话)

新手上路,请多包涵

理解的没什么问题。

错误说法:补充一点数组名也是指针变量,不过它是常数,不能被改变

国内的一些书经常这么说,从内部的角度来讲这样理解是错误的。

理解没问题,继续吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进