c语言学习笔记(一)
从0开始的c语言学习
学习资料来源于imooc教程的c语言入门
Hello World
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
//`#include <stdio.h>` 预处理命令,作用:通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作
//`int main()` 主函数,有且只有一个,唯一入口,真正开始。在最新的C标准中,main函数前的类型为int而不是void
//`return 0;` 代表程序正常退出。return 语句用来结束循环或返回一个函数的值,`return 1;` 说明程序异常退出返回主函数来处理
//C语言语句对空白字符不敏感,所以大部分空格不是必须的
风格
-
一个说明或一个语句占一行,例如:包含头文件、一个可执行语句结束都需要换行;
-
函数体内的语句要有明显缩进,通常以按一下Tab键为一个缩进;
-
括号要成对写,如果需要删除的话也要成对删除;
-
当一句可执行语句结束的时候末尾需要有分号;
-
代码中所有符号均为英文半角符号。
注释
-
多行注释: /* 注释内容 */
-
单行注释: //注释一行
标识符
标识符就是给变量或者函数起的名字
C 语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线
注意:
-
标识符的长度最好不要超过8位,因为在某些版本的C中规定标识符前8位有效,当两个标识符前8位相同时,则被认为是同一个标识符
-
标识符是严格区分大小写的。如abc和Abc 是两个不同的标识符
-
标识符最好选择有意义的英文单词组成,不要使用中文
-
标识符不能是C语言的关键字
变量与赋值
变量就是可以变化的量,而每个变量都会有一个名字(标识符),变量占据内存中一定的存储单元
变量名和标识符的命名规范完全相同
使用变量之前必须先定义变量:
- 变量定义的一般形式为:数据类型 变量名;
- 多个类型相同的变量:数据类型 变量名, 变量名, 变量名...;
变量的赋值分为两种方式:
- 先声明再赋值
- 声明的同时赋值
注意:在定义中不允许连续赋值,如 int a=b=c=5; 是不合法的。
基本数据类型
分为三类:
整型、实型与字符型
-
整型数据是指不带小数的数字
-
浮点数据是指带小数的数字
-
char 字符型 1字节 用于存储单个字符 char sex = 'M';
-
int 整型 2字节 用于存储整数 int height = 100;
-
long int
-
short int
-
unsigned int 无符号整型
-
float 单精度浮点型 4字节 用于存储小数 float price = 11.1;
-
double 双精度浮点型 8字节 用于存储更多位小鼠 double pi = 3.1415926;
注意:
- C语言中不存在字符串变量,字符串只能存在字符数组中
- 声明范围广的(如long int)会多占用空间,甚至超内存
格式化输出语句
格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示
格式:printf("输出格式符",输出项);
格式化符:
- %d,带符号十进制整数,
int a = 10; printf("%d", a); //输出 10 - %c,单个字符,
char x = 'a'; printf("%c", x); //输出 a - %s,字符串,
printf("%s", "shivers"); //输出 shivers - %f,6位小数,
float a = 1.23; printf("%f", a); //输出 1.230000
eg.int a = 10; float b = 7.56; char x = 'c'; printf("整数:%d,小数:%f,字符:%c", a, b, x); //输出 整数:10,小数:7.560000,字符:c
注意:格式符个数要与变量、常量或者表达式个数对应
不可改变的常量
在程序执行过程中,值不发生改变的量称为常量。C语言的常量可以分为直接常量和符号常量。
直接常量:
- 整型常量:13,0,-13;
- 实型常量:13.33,-24.4;
- 字符常量:'a','M';
- 字符串常量:"shivers";
符号常量:
在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义
格式:
#define 标识符 常量值
注意:
- 符号常量的标示符一般习惯使用大写字母,变量的标示符一般习惯使用小写字母,加以区分
- 常量是不可改变的
//eg.
#include <stdio.h>
#define PI 3.14
int main()
{
printf("圆周率:%f\n", PI);
return 0;
}
// 圆周率:3.140000
自动类型转换
char c = 'a';
int x;
double d;
x = c; //字符类型可自动转换为整型
d = x; //整型可自动转换为浮点类型
自动转换发生在不同数据类型运算时,在编译的时候自动完成。
注意:
- char类型数据转换为int类型数据遵循ASCII码中的对应值
- 字节小的可以向字节大的自动转换,但字节大的不能向字节小的自动转换(如 char 1字节 转为 int 4字节,int 4 字节 转为 double 8字节,char 1字节 转为 double 8字节)
强制类型转换
强制类型转换是通过定义类型转换运算来实现的
字节大的类型向字节小的类型强制转换
格式:
(数据类型) (表达式)
//eg.
double tempOne = 6.777;
int tempTwo = (int)tempOne;
printf("%f\n", tempOne);
printf("%d\n", tempTwo);
//6.777000
//6
注意:
- 数据类型和表达式都必须加括号,如
(int)(x/2+y) - 转换后不会改变元数据类型和变量值,只在本次运算中临时性转换
- 强制转换后运算结果不遵循四舍五入原则

浙公网安备 33010602011771号