面向对像的C语言

本文探讨了C语言如何实现面向对象的概念,包括基本数据结构、函数与指针的关系,以及C++中的this指针。通过示例解释了结构体、数组、指针和函数的交互,并讨论了在C语言中模拟面向对象编程的挑战。
摘要由CSDN通过智能技术生成

面向对像的C语言

在CSDN问答上,有人提问说:[学习计算机组成原理这门课程需要什么基础][http://ask.csdn.net/questions/240681#answer_225393]?目前只学过了c/c++数据结构操作系统之类的。现在感觉看计算机组成原理很费劲,特别是电路图。是不是学习之前要什么基础?

我竟然说了这样一句话:

得有点电路基础吧,高中那点东西纯属闹剧,忽悠家长们的荷包用的。

数据结构和逻辑电路基本上已经是两个领域了,所谓跨行隔山,你觉得费劲那是自然的事。而且计算计原理涉及的方面太广了,特别是CPU内部,既有数学原理,又有电子原理。加油吧,遇到接受不了的时候说明还有欠缺的基础没掌握,应该先转向基础的学习,否则硬搞伤身心。学习要有引导性的渐进过程。另外,所谓“学好某门课程就好”这个观点也是不太对的,因为涉及领域太广,不可能将课程都学好,能做到将有关的核心的,对自身学习有突破性影响的内容掌握好,就非常了不起了!

C语言基本数据结构

定义一个变量就是开拓一块在内存,作为用来存放变量所具有的数据的盒子。然后把内存地址交给等号左边的变量,就像把门关上,拿好你的钥匙,这个用来比喻内存地址最恰当不过了。最简单的情形莫过于定义一个数值,一个字符,然后把它交给其它程序处理语句:

#include <stdlio.h>

void main(){
    int num = 99;
    char a = 0x39; // 字符9
    printf("Number num = %d, and character  a = %c\n", num, a);
}

还有结构体,用它就可以将不同的数据组织到一起作为一个整体,因此它更像是一个对象,例如:

    #include <stdlio.h>

    /********* type define ********/
    typedef struct point Point;

    struct point {
        int x;
        int y;
    } p0 = {
  9,9}; /*a definition for shortcut.*/

    void main(void)
    {
        Point p1 = {
  1,2};
        struct point p2 = {
  3,4};
        printf("p0(%d, %d).\n",p0.x,p0.y);
        printf("p1(%d, %d).\n",p1.x,p1.y);
        printf("p2(%d, %d).\n",p2.x,p2.y);
    }

比这个要难一点的就是数组了,它会开辟连续的内存空间,例如下面这个多2*2的字符数组:

    #include <stdlio.h>
    void main(){
        char matrix[2][2] = {
            {
  'A','B'},
            {
  'C','\0'}
        };
        printf("matrix contains: %s\n", matrix);          // ABC
        printf("matrix[0] contains(D): %s\n"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值