学习记录|#C语言-基础篇(Ⅰ)

目录
前言:
一、数据类型与打印数据
1.1 数据类型的使用
1.1.1 数据空间的创建
1.1.2 打印数据
1.2 计算数据所占空间的大小
1.3 补充:计算机存储单位换算
二、变量与常量
2.1 变量
2.2 常量
三、字符串、转义字符、注释
3.1 字符串
3.2 转义字符
3.3 注释
前言: C语言是一种面向对象、较为抽象的语言,在学习过程中主要思考的是思路清怎样如何完成一个过程,又C语言是一种偏向于底层的语言,所以解决问题要从最基础的步骤开始,就像把做题思路每一步都写下来一样,既要晰,又要便于表达。
虽然C语言的语法限制不是非常严格,对变量等限制并不严格,但是编写代码时我们仍需要有一定的规范性,不仅使代码美观,而且也增强了阅读性和可理解性。
下面,让我们来见见第一个代码:

#includeint main(){ printf("hello world\n"); return 0; }

以上代码执行的操作是,打印hello world,并换行。
解析代码:
(1)#include为引用库函数;
(2)int main()为代码运行入口,其返回值0,为int整数类型 ;
(3)printf("")是调用库函数中的打印函数,执行打印“hello world”的命令;其中“\n”为换行命令。
注意:
(1)一个代码中仅可包含一个main函数,否则编译程序无法进入并执行代码。
(2)代码中return 0与main函数前的int是一起使用的。虽然有void main的形式,但是已经是一种过时的写法了,而且可能会引发一些问题。
(3)用<>号表示引用的库函数,有些时候会用""号来引用。区别在于,<>常用作引用已经发布在网络上常用的库函数,而""用作引用自己写的作为的库函数。
了解了这些,那么开始正式的学习吧!
一、数据类型与打印数据 引:生活中我们常用各种数字符号来表示各种事物,C语言也一样,它提供了多种数据类型让我们来选择使用。
下面是几个常见的数据类型:
表1_1 数据类型及信息
名称 打印符号 所占空间大小(单位:字节)
char 字符数据类型 %c 1
short 短整型 %d 2
int 整型 %d 4
long 长整型 %ld 4
long long 更长整型 %lld 8
float 单精度浮点数 %f 4
double 双精度浮点数 %lf 8
说明:
(1)数据类型分无符号型(unsigned)与有符号型(signed),有需要可提前了解
(2)C语言标准规定,long数据类型大小>=int数据类型大小
1.1 数据类型的使用 我们有了数据类型,那么就可以使用它们了。如何使用呢?那就要考考你数学知识了,在C语言中的整形就是数学中说的整数,而浮点型就是小数;当然,字符型并不在数字中,它是a、b、c等字母以及一些符号,如!、?等。
1.1.1 数据空间的创建
知道了一个事物所属的数据类型,现在就该将它表示出来了。表示一个数据,首先就要确定它的类型,确定申请空间大小,然后再给数据命名和赋值(创建变量时赋值也称为初始化)。
代码1_1:
#includeint main(){ char ch='A'; float weight=50.0; int number=100; return 0; }

说明:以上代码即为创建某一种数据类型的变量,数据类型+数据名称+=+初始化。
1.1.2 打印数据
创建好一个数据类型后,接下来就是如何使用了,加减乘除均可,下面我们先了解如何打印数据。
代码1_2:
#includeint main(){ char ch='A'; float weight=50.0; int number=100; printf("%c\n",ch); printf("ch=%c\n",ch); return 0; }

以上代码执行效果:
A
ch=A
说明:
打印数据所使用的代码函数为printf函数。从上面代码运行结果来看,是否有所发现呢?
printf函数的使用即:printf("" ,);其中引号内为打印的内容,只要输入合法且没有一些特殊符号均可打印;而引号后,则是需要打印的变量,与打印符号配对使用。
如果条件允许,可以尝试打印剩下几个数据。
补:
printf函数在打印浮点数小数时,如果没有规定,通常打印为小数点后六位,那么然后规定呢?如下:
#includeint mian(){ float pai=3.14; printf("%3.1f\n",pai); return 0; }

(%3.1f)说明:
(1)3->打印整数的位数:若整数位数小于3,则左空位补充;若大于3,则照常打印;
(2).1 ->打印小数的位数:若小数位数小于1,则小数点后补0;若大于1,则四舍五入。
1.2 计算数据所占空间的大小 代码1_3:
#include int main(){ printf("%d\n", sizeof(char)); printf("%d\n", sizeof(short)); printf("%d\n", sizeof(int)); printf("%d\n", sizeof(long)); printf("%d\n", sizeof(long long)); printf("%d\n", sizeof(float)); printf("%d\n", sizeof(double)); printf("%d\n", sizeof(long double)); return 0; }

说明:使用库函数中的sizeof函数,即可求得该数据类型所占空间的大小了,见图1_1。
1.3 补充:计算机存储单位换算 生活中常见的单位有比特位bit、字节byte、kb、mb和gb,除外还有tb、pb......这些单位的进制,除bit与byte为八进位(8bit=1kyte),后均为1024进位(1024byte=1kb...)。
二、变量与常量 2.1 变量 2.1.1 定义
(1)局部变量:定义在代码块{}内的变量;
(2)全局变量:定义在代码块{}外的变量。
说明:
i)局部、全局变量建议不要相同,虽然合法,但容易产生误会,或者产生bug;
ii)局部、全局变量同名时,局部变量优先。
2.1.2 变量的使用
输入数据-使用输入函数scanf("",),引号内为输入数据的类型表示,类似于打印字符,引号后则为变量名称,且必须加上取地址符号&。
2.1.3 作用域和生命周期
作用域:
(1)局部变量:仅在所在代码块内作用;
(2)全局变量:整个代码文件,
i)如果需要在不同文件使用,需要提前声明:extend(int ~);
生命周期:
(1)局部变量:进入作用域,到出作用域;
(2)全局变量:整个程序。
2.2 常量 2.2.1 字符常量(单纯的数字)
2.2.2 const修饰的常变量
代码2_1:
#includeint mian(){ const int num=4; return 0; }

说明:const修饰表示该变量有了常属性,则num为常变量,后续num的值不可以再被赋值
2.2.3 #define定义的标识符常量
代码2_2:
#include#define Max 10; int main(){ printf("%d\n",Max); return 0; }

其中,Max即为常量,且数值为10.
2.2.4 枚举常量
枚举,即一一列举,如性别、三原色、星期等。
枚举关键字:enum。
代码2_3:
#includeenum Sex { MALE, FEMALE, SECRET, }; int main() { printf("%d", MALE); return 0; }

说明:代码2_3中enum Sex就是一次枚举,其中枚举常量均有个各的数值,由上到下,从0开始计数。
2.2.5 补充:数组
创建数组:数据类型arr[ ] = {}; ,其中 [ ]内为数组元素个数,必须为常数,{ }内为数组中元素。
三、字符串、转义字符、注释 3.1 字符串 定义:由“”双引号引起的一个或多个字符;
字符串所占存储空间大小:字符数+1(“\0”);
打印字符串符号:%s。
代码3_1:
#includeint main() { char arr1[] = "abc"; char arr2[] = { 'a','b','c' }; printf("%s\n", arr1); printf("%s\n", arr2); return 0; }

运行结果:
学习记录|#C语言-基础篇(Ⅰ)
文章图片

说明:
(1)数组arr1中用双引号引用的效果:"abc"<==>{'a','b','c','\0'}。
(2)打印字符串时常以‘\0’为结束标志,换句话说,如果没有‘\0’,则程序会一直运行,直到‘\0’为止。
补:
库函数为字符串操作函数库,其中的strlen函数,用于计算字符串的长度的,也是以“\0”为结束标志。例如:strlen(arr1),则其值为3,可自行验证。
3.2 转义字符 定义:将数字或符号改变其原本含义,如“\0”、“\n”......
以下是较常见的转义字符:
图3_1
\' 用于表示字符常量'
\" 用于表示字符常量"
\\ 用于表示一个反斜杠,防止被解析为一个转义序列符
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符,表示换页,将当前位置移到下页开头
\n 换行
\r 回车
\t 水平制表符(大空格),tab键
\v 垂直制表符
\ddd 表示1~3个八进制数字,如\10=8,\110...
\xdd 表示2个十六进制数字,如\x30...
补:
strlen("c:\test\32\test.c")其中字符串长度为13.
(1)转移字符为一个字符长度
(2)"\32",表示2个八进制数,表示其对应十进制数作为ASCII码值对应的字符
(3)ASCII表
3.3 注释
(1)代码中不需要的内容,可删,可注释
(2)难懂的代码需要注释解释
(3)注释符号://(注释内容)或者/*(注释内容)*/
【学习记录|#C语言-基础篇(Ⅰ)】

    推荐阅读