返回介绍

运行代码时,计算机在想什么

发布于 2024-10-10 23:21:23 字数 2029 浏览 0 评论 0 收藏 0

  • 计算机看到函数。

void fortune_cookie(char msg[]){ ...}



紧接着,计算机看到了函数的内容。 printf("Message reads: %s\n", msg);printf("msg occupies %i bytes\n", sizeof(msg));

计算机调用函数。 char quote[] = "Cookies make you fat";fortune_cookie(quote);

要点

数组变量可以被用作指针。
数组变量指向数组中第一个元素。
如果把函数参数声明为数组,它会被当作指针处理。

sizeof 运算符返回某条数据占用空间的大小。

也可以对某种数据类型使用 sizeof ,例如 sizeof(int) 。

sizeof (指针) 在 32 位操作系统中返回 4,在 64 位操作系统中返回 8。

 这里没有蠢问题问:sizeof 是一个函数吗?答:不是,它是一个运算符。问:有什么区别?答:编译器会把运算符编译为一串指令;而当程序调用函数时,会跳到一段独立的代码中执行。问:所以程序是在编译期间计算 sizeof 的?答:没错,编译器可以在编译时确定存储空间的大小。问:为什么在不同的计算机上指针变量的大小不同?答:在 32 位操作系统中,存储器地址以 32 位数字的形式保存,所以它叫 32 位操作系统。32 位==4 字节,所以 64 位操作系统要用 8 个字节来保存地址。问:如果我创建了一个指针变量,它位于存储器中吗?答:是的,指针变量只不过是一个保存数字的变量罢了。问:我可以找到指针变量的地址吗?答:可以用& 运算符找到它的地址。问:我可以把指针转化为一般的数字吗?答:在大多数操作系统中,可以这样做。C 编译器通常会把 long 数据类型设为和存储器地址一样长。如果想要把指针 p 保存在 long 变量 a 中,可以输入 a=(long)p ,过几章我们会学习这种方法。问:是在大多数操作系统中吗?所以并不是全部?答:并不是全部。

 三位钻石王老五准备参加今天的“非诚勿扰”。今晚的幸运女嘉宾将从三位选手中选出她的白马王子,她会选谁呢?

 三位钻石王老五准备参加今天的“非诚勿扰”。今晚的幸运女嘉宾将从三位选手中选出她的白马王子,她会选谁呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文