8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

C:字符指针和数组之间的区别

SiddheshDesai 1月前

175 0

考虑:char amessage[] = \'now is the time\';char *pmessage = \'now is the time\';我从《C 编程语言》第 2 版中读到,上述两个语句并不执行相同的操作。我总是……

考虑:

char amessage[] = "now is the time";
char *pmessage = "now is the time";

我从 《C 编程语言 》第 2 版中了解到,上述两个语句的作用并不相同。

我一直认为数组是一种操作指针来存储某些数据的便捷方式,但显然事实并非如此......C 语言中数组和指针之间有哪些“非平凡”的区别?

帖子版权声明 1、本帖标题:C:字符指针和数组之间的区别
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由SiddheshDesai在本站《c》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 数组包含元素。指针指向它们。

    第一种是简短的说法

    char amessage[16];
    amessage[0] = 'n';
    amessage[1] = 'o';
    ...
    amessage[15] = '\0';
    

    也就是说,它是一个包含所有字符的数组。特殊初始化会为您初始化它,并自动确定其大小。数组元素是可修改的 - 您可以覆盖其中的字符。

    第二种形式是指针,它只指向字符。它不直接存储字符。由于数组是字符串文字,因此您无法获取指针并写入它指向的位置

    char *pmessage = "now is the time";
    *pmessage = 'p'; /* undefined behavior! */
    

    此代码可能会在您的机器上崩溃。但它可能会做任何它想做的事情,因为它的行为是未定义的。

返回
作者最近主题: