美文网首页
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语言的一些问题

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

  • C语言的一些问题...

    1.【数组】 从键盘输入6个整数保存到数组中,求值最大的元素,将这个值最大的元素与数组的最后一个元素交换。最后输出...

  • C语言学习经验(一)

    这个系列是来讲述本人在学习C语言过程中遇到的一些问题,算是学习笔记吧。给初次学习C语言的同学借鉴一下。 题目:计算...

  • 最近学习的一些感悟:

    前一段时间的规划是这样的,C语言和渗透加强一起进行,目前C语言已经进行到指针,进度还是可以的。但是也发现了一些问题...

  • C语言中的一些问题

    下面那里出错了。 /*构造素数表*/ #include int main() { const int maxNum...

  • C++简答题

    一、简答题 1、C语言与C++语言的区别? 答: C语言是面向过程语言,C++是面向对象语言(OOP) C语言...

  • 慕课网-c++教程起航篇-学习笔记

    c++教程起航篇 C语言是C++的子集。 c语言是面向过程的语言,而C++是面向过程的语言又是面向对象的语言。 C...

  • C小白

    一 C语言概述(what)①C语言的特点C语言是一种底层语言,小型语言,包容性语言②C语言的优点高效。可移植。功...

  • C++语言学习之面向对象

    1.C语言与C++语言的区别 C++面向对象 C 面向过程 函数+结构体 C++可以运行调用C语言 反之 C语言无...

  • C++远征之起航篇

    C++和C语言的联系与区别: C++是C语言发展而来,C语言是C++的子集 C++更高效3.相对于C语言,C++添...

网友评论

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

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