C语言中点操作符(.)和箭头操作符(->)的不同之处

栏目: C · 发布时间: 6年前

内容简介:自己写一个简单的uname, 要用到utsname结构体, 编译报错如下:.. code:: c查实一下, 是因为用错了操作符:

自己写一个简单的uname, 要用到utsname结构体, 编译报错如下:

.. code:: c

uname.c: In function ‘main’:
uname.c:8:42: error: invalid type argument of ‘->’ (have ‘struct utsname’)
   printf("%s - %s - %s - %s - %s\n", name->sysname, name->nodename,\
                                          ^

查实一下, 是因为用错了操作符:

  • -> 的左侧必须是指针.
  • . 的左侧必须是结构体实体.

程序如下:

.. code:: c

$ cat -n uname.c
1  #include <sys/utsname.h>
2  #include <stdio.h>
3
4  int main(void)
5  {
6    struct utsname name;
7    printf("%d\n", uname(&name));
8    printf("%s - %s - %s - %s - %s\n", name.sysname, name.nodename,\
9        name.release, name.version, name.machine);
10    return 0;
11  }

2014-09-21: ~~~~~~~~~~~

(摘自《征服c指针》-前桥和弥):

| p->hoge; | 是 | (*p).hoge; | 的语法糖.


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

精益创业实战

精益创业实战

Ash Maurya / 张玳 / 图灵文化发展有限公司 / 2013-1 / 39.00元

《精益创业实战(第2版)》融合了精益创业法、客户开发、商业模式画布和敏捷/持续集成的精华,讲解精益创业实战法。作者以自己的创业项目为主线,结合大量真实案例,并融入一些伟大创业者的智慧,创建了一套思考、验证和发布产品的系统。那些想要验证自己的创意、解决实际问题和渴望拥有成功事业的人,可以把《精益创业实战(第2版)》当成一套明确的实践计划、一幅清晰的创业路线图、一本实践指南,或者一套反复实践的方法论。一起来看看 《精益创业实战》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试