学习记录|#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语言也一样,它提供了多种数据类型让我们来选择使用。
下面是几个常见的数据类型:
名称 | 打印符号 | 所占空间大小(单位:字节) | |
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.2 计算数据所占空间的大小 代码1_3:
(1)3->打印整数的位数:若整数位数小于3,则左空位补充;若大于3,则照常打印;
(2).1 ->打印小数的位数:若小数位数小于1,则小数点后补0;若大于1,则四舍五入。
#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)全局变量:定义在代码块{}外的变量。
说明:2.1.2 变量的使用
i)局部、全局变量建议不要相同,虽然合法,但容易产生误会,或者产生bug;
ii)局部、全局变量同名时,局部变量优先。
输入数据-使用输入函数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;
}
运行结果:
文章图片
说明:
(1)数组arr1中用双引号引用的效果:"abc"<==>{'a','b','c','\0'}。
(2)打印字符串时常以‘\0’为结束标志,换句话说,如果没有‘\0’,则程序会一直运行,直到‘\0’为止。
补:3.2 转义字符 定义:将数字或符号改变其原本含义,如“\0”、“\n”......
库函数为字符串操作函数库,其中的strlen函数,用于计算字符串的长度的,也是以“\0”为结束标志。例如:strlen(arr1),则其值为3,可自行验证。
以下是较常见的转义字符:
\' | 用于表示字符常量' |
\" | 用于表示字符常量" |
\\ | 用于表示一个反斜杠,防止被解析为一个转义序列符 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符,表示换页,将当前位置移到下页开头 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符(大空格),tab键 |
\v | 垂直制表符 |
\ddd | 表示1~3个八进制数字,如\10=8,\110... |
\xdd | 表示2个十六进制数字,如\x30... |
补:3.3 注释
strlen("c:\test\32\test.c")其中字符串长度为13.
(1)转移字符为一个字符长度
(2)"\32",表示2个八进制数,表示其对应十进制数作为ASCII码值对应的字符
(3)ASCII表
(1)代码中不需要的内容,可删,可注释【学习记录|#C语言-基础篇(Ⅰ)】
(2)难懂的代码需要注释解释
(3)注释符号://(注释内容)或者/*(注释内容)*/
推荐阅读
- 20170612时间和注意力开销记录
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 定制一套英文学习方案