这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 【学习会】一起学习C语言之重温C语言

共22条 1/3 1 2 3 跳转至

【学习会】一起学习C语言之重温C语言

院士
2018-05-11 11:43:05     打赏

从大一后半年接触C语言,一直未曾放下C语言的学习与提高。

C语言的地位就犹如生活中的英语,是一门基础语言,是一门与其它语言沟通的语言。

借论坛活动机会,换一个视角,站在另一个高度重新学习C语言。

相信收获还会满满的。

在为期四周的活动中,温习一遍基础知识,抛弃浮躁的心态,以此帖为根据,记录这段“重温C语言”的时光。


主题帖子更新列表:

1、我的学习计划...... 6楼

2、第一章、格式化输入输出...... 7楼

3、第一章、格式化输入输出实验操作...... 8楼

4、第二章、运算和数据类型...... 9楼

5、第五章、数组...... 10楼

6、第七章、基本数据类型...... 11楼

7、第十二章、结构体(另枚举类型)...... 12楼

第一周的学习顺利完成,我也重温了C语言的这几个基本数据类型,接下来的一周将进行程序编程方面的学习。

8、第三章、分支结构...... 13楼

9、第四章、程序的循环控制...... 14楼

10、第六章、函数...... 15楼

11、第八章、动手编写自己的函数...... 16楼

第二周的学习也顺利完成,对于程序的控制与基本数据类型的应用,完成了温习。接下来一周将学习C语言的精华,字符串与指针!

00、期中作业题...... 17楼

12、第九章、字符串...... 22楼

13、占位符(待添加)





关键词: 学习会     重温     C语言    

专家
2018-05-11 15:17:35     打赏
2楼

有大佬陪读,这次学习活动相信一定会收获很多


院士
2018-05-11 22:42:05     打赏
3楼

    版主学习、使用C语言这么多年并取得了许多佳绩,现在还来参加这里的学习,其学习上的努力进取精神,值得我们学习。


管理员
2018-05-14 09:06:46     打赏
4楼

 


菜鸟
2018-05-14 16:21:18     打赏
5楼

工匠精神


院士
2018-05-18 08:54:20     打赏
6楼
我的学习计划

从今天开始,“【学习会】一起学习C语言”的活动正式开始更新。在开始学习之前,列一个学习计划,一方面是学习的进度把控;另一方面也是对学习的一个督促。

从《明解C语言》的目录看,全书分为13章,其编制顺序如下:

  • 1 初识C语言

  • 2 运算和数据类型

  • 3 分支结构程序

  • 4 程序的循环控制

  • 5 数组

  • 6 函数

  • 7 基本数据类型

  • 8 动手编写各种程序吧

  • 9 字符串的基本知识

  • 10 指针

  • 11 字符串和指针

  • 12 结构体

  • 13 文件处理

考虑到自己并非初学者,于是将学习顺序按照内容归类,统一学习,因此我的学习顺序将做如下调整:

1周:第1 初识C语言;第2 运算和数据类型;第5 数组;第7 基本数据类型;第12 结构体;

2周:第3 分支结构程序;第4 程序的循环控制;第6 函数;第8 动手编写各种程序吧;

3周:第9 字符串的基本知识;第10 指针;第11 字符串和指针;

4周:第13 文件处理;

计划好学习内容与进度,下面就部署一下C语言的开发编译环境。本次将依平时常用的IAR嵌入式开发环境为主要编译平台,在特定示例或者学习过程中再考虑其它平台。

现在电子书已经下载完毕,开发环境也搭建完毕,就剩下开始学习了。Let’s go!!



院士
2018-05-19 15:29:42     打赏
7楼
第一章、格式化输入输出

发布时间:

帖子链接:

基本在所有的书本里第一章都是基础, /* 有点废话了 */ 《明解C语言》也不例外。

本章阅读之后主要熟悉了三个函数,分别是 printf函数,scanf函数,puts函数。

这三个函数的具体用法在这里就不再copy人家的原文了,后面会以示例说明,这里就先谈谈其主要目的与应用吧!

1、方便我们了解变量的操作及变量值的改变;

2、将C语言的学习从无形到有形,深入学习C语言;

3、为后续变量与存储的学习提供方便;

在变量跟踪的过程中,现在的开发环境基本都可以单步调试并实时显示变量值及地址,但依然保持这个printf的方法便于记录与实现。

本次我使用IAR cortex-m开发环境,在此环境下完成本章实验并没有过多需要注意的问题,只需要头文件 include <stdio.h> 添加,在输出窗口使用”terminal I/O”窗口查看即可。



院士
2018-05-21 11:19:30     打赏
8楼
第一章、格式化输入输出实验操作

先列出来源代码,如下:

#include <stdio.h>
void main(void)
{
  int i = 12;
  printf("hello world!\n");
  printf("the variable i = \t%d\n", i);
  i = 1234;
  printf("the variable i = \t%d\n", i);
  i = 123456;
  printf("the variable i = \t%d\n", i);
  printf("this is exp01! www.eepw.com.cn);
  while(1)
  {
    ;
  }
}

printf.jpg


在上面的示例里,我们使用了printf函数的输出功能,我们可以看到,在变量的输出上面我们已经完成了格式化处理,使变量看上去清楚、明子,非常便于我们对数据的理解与分析。

在本实验中,使用了“\t””\n”两个转义符,分别代表一个制表位与换行,二者均用来对齐数据输出的,从上面的输出截图也可以清晰看到。

今天的实验为以后的输入与输出打好了基础,继续下一章的学习了。



院士
2018-05-22 13:27:18     打赏
9楼
第二章、运算和数据类型

发布时间:2018522

帖子链接:http://forum.eepw.com.cn/thread/296305/1#9

本章主要讲了一些概念,这些概念在平时使用时非常平凡,以致于多年以后再谈起时对其概念会比较模糊,但确实不影响工作与学习。

运算符:我们最常见的基本运算,如+-*/%

操作数:参与运算的变量或者常量。这个多提一下,在以后的应用过程可能会涉及到左操作数右操作数的概念,我们遇到再了解。

单目运算:从名称上可以得出,只有一个操作数的运算,只有以下四种”“~”“-”“+”(这个仅对应,无实际意义)

双目运算:有两个操作数的运算,如赋值操作;

三目运算:有三个操作数的运算,如表达式:真?假;的运算符;

在本章第二节里谈到了数据类型,在嵌入式编程里对数据类型不是特别敏感,多数是以变量的长度来定义,但不同数据类型对应的字节长度又是编译器依据平台自己制定,这时就存在了概念的交叉问题。举个例子:

对于int类型来说,在VS4字节长度的变量,而在IAR Cortex-M下,只有2字节长度。它们对应的数值大小可完全不同,因此,在C99标准下,引入了另外一个概念,即按字节长度定义的数据类型,如uint8_t 8位无符号型变量。它的数据大小在 0-255之间,其它的数据类型大家可以以此类推。

以上是针对整形数据而言,而在浮点数下,依然使用了float double两种类型(本书中只能使用double类型),两个数据是非常大的,在limits.h的头文件里有定义,这里我就不班门弄斧了。

本文还讲了数据类型转换的问题,在嵌入式编程里,数据类型尽量不要转换,如果遇到小数的情况,建议使用放大倍数来解决。当然,在本章里,我们还是以数据类型转换来完成对应实验。

综上所述,运算和数据类型是我们平时再平常不过的应用,基础知识是知识的基础,而非可以忽略的知识。



院士
2018-05-23 13:17:08     打赏
10楼

第五章、数组


数组在C语言里的应用非常普遍,也相当灵活。教材里对此章讲解较初级,高阶应用估计是留着他的提高篇里讲述了。

先来描述数组,数组是相同数据类型的变量的集合。一定是相同的数据类型。

数组的声明方式也相当简单,即在变量后面添加方括号【】int array[8],里面的值”8”即为数组的长度。在声明的时候数据括号内的数值一定为常量,主要因为C语言不支持变长的数组,换句话说,编译器在初始化时,会以此为该数组分配地址与空间。


int array; /* 声明int类型的变量array */
int array[8]; /*声明int类型的数组array[],数组长度为8 */

数组的引用也非常方便,方括号里的数值称为标号,如array[0],数组第一个元素,记住数组的标号是从“0”开始的。

数组的复制:这个用到的也不同,记录数组的复制是数组内部所有元素的复制,文中也告诉我们,一个变量用一个等号来赋值,而数组要用一堆等号来赋值。

多维数组就是数组的数组,起初可能很难理解,用一两次自然就懂了。

本章还提出了另外一个概念宏定义,宏的应用也是在编译阶段完成的,其是对文本的一个简单替换。为了增加程序的可读性,建议大家在常量的使用时通过宠定义来实现——这个是经验之谈。

对于宏的替换,编译器不会替换字符串字面量和字符常量中的部分内容,也不会替换变量名等标识符中的部分内容,举例来说:

#define AA (0)
#define AAAA     (1)

上面是两个宏,“AAAA”会被替换为”1”,而不是“00”



共22条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]