C语言重拾(1)

C语言重拾

本科学过一点C语言,学得甚是马虎,恰好最近因为在学习STM32单片机,自觉C语言忘得太多,基础太差。所以结合C primer plus再过一遍C语言,重拾C编程技能。本系列文章会记录一些小的知识点以及学习中的疑问困惑及解决办法,流程就按照书的章节目录顺序写。

第2章 C语言概述

这次看的是C pp的第六版,大学看过一点第五版,一想也是几年前了。部分章节会跳过,重点在于一些重要的概念和语句使用方法。

2.2 示例解释

C语言中的6种语句:标号语句、复合语句、表达式语句、选择语句、迭代语句、跳转语句。
tips:如果输出时在屏幕上一闪而过,可以加 getchar(); 此函数读取下一个输入字符,程序等待用户输入。(如果有scanf函数,则需要多加对应次数的getchar();getchar()可读取换行符或让程序暂停,等待输入)

2.2.2 程序细节

#include是预处理器指令,编译器对代码进行预处理。
#include<stdio.h> 预编译代码的库文件

int main(void) C程序一定从main()开始执行 int是main()函数的返回类型 void表明本例中没有传递任何信息
void main() 这种格式,部分编译器允许,并非所有标准允许,故不推荐。

int num; 这行代码叫作声明
int是关键字,关键字是语言定义的单词,num是标识符,也就是一个变量、函数或其他实体的名称。
所有变量必须先声明再使用,具体数据类型在第三章介绍。

**** 突然发现写的好啰嗦,简单的事情弄得太复杂了… ****

2.6 多个函数

/*一个文件中包含两个函数*/
/*butler:男管家*/
#include <stdio.h>
void butler(void); 		//函数原型,告知编译器在程序中要使用该函数; 
int main(void)
{
	printf("I will summon the butler function.\n");
	butler();		//函数调用 
	printf("Yes.Bring me some tea.\n");
	
	return 0;
}

void butler(void)		//函数定义,即函数本身源代码 
{
	printf("You rang,sir?\n");
}

C90标准加入了函数原型,这是一种声明形式,告知编译器正在使用某函数,所以也叫做函数声明。它同时指明了函数属性,如本例中,第一个void表明函数没有返回值(通常被调函数会向主调函数返回一个值,butler()函数没有),第二个void表明butler()函数中不带参数。

2.8关键字和保留标识符

C 关键字

第3章 数据和C

数据类型这块自己学得不清不楚的,还是重点学习一下(单片机还有can通信的时候也都用到过,稀里糊涂地写的程序…)

3.3 数据:数据类型关键字

不同数据类型也有差异,一些数据类型表示数字,一些表示字符,C通过识别一些基本的数据类型来区分和使用这些不同的数据类型(如,42是整数,42.100是浮点数),而变量在声明时就应指定其类型。通过关键字定义的数据类型,按储存方式可分为两类:整数类型和浮点数类型。
位、字节和字:最小存储单元是位(bit),用于储存0或1。字节(byte)在衡量存储单位时,均为8位1字节。字是设计计算机时给定的自然存储单位,个人计算机的字长由最初的8位增至16.32.直到目前的64位。计算机字长越大,其数据转移越快,允许的内存访问也更多。(* 位操作在第十五章 *)

3.3.3 浮点数

计算机将浮点数分成小数部分和指数部分来表示,而且分开储存这两部分。十进制下,7.0写作0.7E1,小数部分存0.7,指数部分存1。当然计算机在内部使用二进制和2的次幂储寸,而不是10的幂。对于浮点数和整数类型,在一些运算时,浮点数损失的精度更多(如两个很大的数相减)。因为在任意区间内有无穷多个实数,所以浮点数不能表示区间内的所有值,通常只是实际值的近似值,如7.0可能被存为6.99999。

3.4 C语言基本数据类型

3.4.1 int类型

int为有符号整型,取值可以为正整数、负整数或零。其取值范围依计算机系统而异,一般而言,储存一个int要占用一个机器字长。早期,16位PC机用16位来储存一个int值,其取值范围是-32768~32767(2^16)。现在的计算机有32位.64位的,故有的用32位储存一个int值,有的用64位。

显示八进制与十六进制的数:
   十进制用 %d        八进制用**%o**   十六进制用**%x**
           Ps:要显示各进制数的前缀0/0x/0X,必须分别使用%#o、%#x、%#X

3.4.2 其他整数类型

其他整数类型

3.4.3 使用字符:char类型

char用于储存字符,但是本质上还是整数类型,实际上存的并非字符,而是ASCII码对应的数字。此处还有转义序列等概念。

3.4.6 float、double和long double

浮点数的表示类似于科学计数法(指数计数法),C标准规定,float类型必须至少表示6位有效数字,且取值范围至少是10-37~10+37。前一项规定float类型必须至少精确表示小数点后6位有效数字,如33.333333。(此处的疑问:六位有效数字是指小数点后六位嘛?数学概念中并非如此。用编译器自己printf,看起来都是小数点后六位)后一项方便储存幂数绝对值很大的数字。通常,一个浮点数要占用32位,其中8位用于表示指数的值和符号,另外24位表示非指数部分及其符号。
(关于这部分找到了网上的一个讲解,很细致:浮点数
C语言提供的另一种浮点类型是double(意为双精度)。double和float最小取值范围相同,但是至少必须能表示10位有效数字。一般情况下,double占用64位而不是32位。默认情况下,编译器假定的浮点型常量是double类型的精度。在浮点数后面加上f或者F后缀可覆盖默认设置,编译器会将浮点型常量看作float型,如2.3f和9.11E9F。使用l或者L后缀,可将数字类型变为 long double类型,建议使用L,防止小写的l与数字1混淆。

小结

第一篇就先看概述和数据类型吧,写的也比较乱,只能是自己的一个学习记录&笔记,不能帮助到其他人…下一章打算直接跳到15章,学习位操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
后台采用apache服务器下的cgi处理c语言做微信小程序后台逻辑的脚本映射。PC端的服务器和客户端都是基于c语言写的。采用mysql数据库进行用户数据和聊天记录的存储。.zip C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值