美文网首页
C语言的一些问题

C语言的一些问题

作者: 贵族_4e67 | 来源:发表于2018-03-10 17:54 被阅读0次

    1 变量,是内存地址的一个抽象名。在静态编译的程序中,所有的变量名都会在便宜的时候转换成内存地址。

    2 结构体, 不管结构体的实例是什么 ,访问其成员其实是该结构体地址加上成员的偏移量。

    3 数组 , 访问成员数组名其实得到的是成员相对于数组名的相对地址,而访问成员指针是指访问相对地址中的内容。
      所以对于数组char s[10] 来说 ,使用数组名 s与使用地址&s是一样的。比如这样一段代码:

    char  s[10];
    printf("print s is: %d\n",s);
    printf("print &s is: %d\n",&s);
    

    在我的机器上运行的结果是:


    result

    4 使用指针声明结构体的用处
     个人感觉是为了方便使用malloc函数开辟内存空间,因为malloc函数返回的是一个指针指向分配的空间。比如如下定义的一个链表结构体

    typedef struct Nnode{
        int data;
        struct Nnode * next;
    } PtrToNnode;
    

    我们在声明空间的时候就可以使用

    PtrToNnode * newNode = (PtrToNnode)malloc(sizeof(PtrToNnode);
    

    相关文章

      网友评论

          本文标题:C语言的一些问题

          本文链接:https://www.haomeiwen.com/subject/trdbfftx.html