| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2572 人关注过本帖
标题:C语言已经学完了,但是感觉有点缺少实践,有没有人可以告诉我,怎么检验和巩 ...
只看楼主 加入收藏
晨阳、
Rank: 2
等 级:论坛游民
帖 子:44
专家分:20
注 册:2017-3-4
结帖率:72.73%
收藏
已结贴  问题点数:10 回复次数:8 
C语言已经学完了,但是感觉有点缺少实践,有没有人可以告诉我,怎么检验和巩固一下自己的学习成果
C语言已经学完了,但是感觉有点缺少实践,有没有人可以告诉我,怎么检验和巩固一下自己的学习成果
搜索更多相关主题的帖子: C语言 缺少 学习 
2018-05-03 17:24
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:2 
找问题自己多练习编程就可以了。还有就是进群多参与讨论。
2018-05-03 17:53
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:2 
其中一种方法就是看看自己能看懂多少代码~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-05-03 18:00
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
收藏
得分:2 
学完了?这可不好说
2018-05-03 19:45
bluesky001
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2018-3-3
收藏
得分:2 
学习编程的年龄有要求吗?最大多少不合适学习编程了(从零开始哦),45岁可以么?
2018-05-03 20:21
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:2 
回复 5楼 bluesky001
学习啥时候都不晚

穷举是最暴力的美学
2018-05-04 08:57
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:0 
回复 楼主 晨阳、
找个oj平台 然后你会发现你学的太少了

穷举是最暴力的美学
2018-05-04 09:08
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 7楼 nosnoy
oj平台大都和算法有关,但实用性却不敢恭维,当然见识一下是完全没有问题的~
除了算法还有其它很多的,例如操作系统,编译原理~
还可以看看相关头文件以及对应的库函数(很多的)~

顺便借楼,如果能说清楚等下对这下面两个代码提出的问题那就已经很好了 欢迎回复~

程序代码:
#include<stdio.h>

#define __COPY_ARR( A,B,TYPE )    \
    do    \
    {    \
        struct __COPY_ARR_S    \
        {    \
            TYPE s[sizeof (A)/sizeof (TYPE)];    \
        }*const __COPY_TEMP__=( const struct __COPY_ARR_S* )&A;    \
        *__COPY_TEMP__=( const struct __COPY_ARR_S )B;    \
    }while (0)

void test1( void );
void test2( void );

int main( void )
{   
    test1();
    test2();
    
    return 0;
}

void test1( void )
{
   const int a[3]=
   {
       9,
       8,
       7
   };
   
   int b[3];
   
   __COPY_ARR(b,a,int);
   
   printf("%d\n",b[0]);
   printf("%d\n",b[1]);
   printf("%d\n",b[2]);
   
   puts("");
}
void test2( void )
{
    const double a[2][2]=
    {
        {1.1,2.2},
        {3.3,4.4}
    };
    
    double b[2][2];
    
    __COPY_ARR(b,a,double);
    
    printf("%.1f\n",b[0][0]);
    printf("%.1f\n",b[0][1]);
    printf("%.1f\n",b[1][0]);
    printf("%.1f\n",b[1][1]);
}


上面第一个代码是怎么对数组进行复制的?(其实清楚也没啥好说,了解一下就可以了)~

程序代码:
#include<stdio.h>

#define __MACRO    \
    do    \
    {    \
        struct    \
        {    \
            char a;    \
            char b;    \
            int c;    \
        }const s1=    \
        {    \
                0x1,    \
                0x2,    \
                0x3    \
        };    \
        \
        printf("%#x\n",s1+0);   \
    }while (0)

int main( void )
{
#pragma pack(push,1)
    __MACRO;
#pragma pack(pop)
    __MACRO;

    return 0;
}0;
}


第二个代码比较好玩~
除了体现内存对齐之外,
输出的结果看看是多少,其实这还是和处理器的大端小端有关~

最后附加一个小问题~
在宏定义里面,do{}while(0)这个结构到底起到什么作用?~

吃瓜去~

[此贴子已经被作者于2018-5-4 12:23编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-05-04 09:24
bluesky001
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2018-3-3
收藏
得分:0 
回复 6楼 nosnoy
谢谢 ~
2018-05-07 19:23
快速回复:C语言已经学完了,但是感觉有点缺少实践,有没有人可以告诉我,怎么检 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035226 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved