C语言基础笔记Lesson1

1、C语言——助记符——机器码——编译

2、\n\

  • '\n’表示换行,转义字符
  • ‘\’一般用在一行代码超级长时加上\代表下一行是上一行的延续

注意:prin\tf(“Hello World\n”)正确
prin
tf(“Hello World\n”)错误 相当于prin\ tf(“Hello World\n”)
3、变量

  • 变量的意义就是确定目标并提供存放的空间
  • 变量的命名应注意:
    a.变量名只能是英文字母和数字或者下划线组成
    b.第一个必须是字母或者下划线开头
    c.变量名区分大小写
    d.不能是关键字
  • 37个关键字(此部分转自网络)

一、数据类型关键字(20个)
基本数据类型(5个)
1、void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果
2、char:字符型类型数据,属于整型数据的一种
3、int:整型数据,通常为编译器指定的机器字长
4、float:单精度浮点型数据,属于浮点数据的一种
5、double:双精度浮点型数据,属于浮点数据的一种类型修饰关键字(4个)
6、short:修饰int,短整型数据,可省略被修饰的int。
7、long:修饰int,长整形数据,可省略被修饰的int。
8、signed:修饰整型数据,有符号数据类型
9、unsigned:修饰整型数据,无符号数据类型复杂类型关键字(5个)
10、struct:结构体声明11、union:共用体声明12、enum:枚举声明
13、typedef:声明类型别名
14、sizeof:得到特定类型或特定类型变量的大小存储级别关键字(6个)
15、auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配
16、static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部
17、register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数
18、extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明的韵蟮囊桓觥耙 谩?
19、const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)
20、volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值
二、流程控制关键字(12个)
跳转结构(4个)
21、return:用在函数体中,返回特定值(或者是void值,即不返回值)
22、continue:结束当前循环,开始下一轮循环,执行到此只结束本轮循环,继续新一轮循环
23、break:跳出当前循环或switch结构,执行到此跳出所有的循环,即结束for语句等
24、goto:无条件跳转语句分支结构(5个)
25、if:条件语句26、else:条件语句否定分支(与if连用)
27、switch:开关语句(多重分支语句)
28、case:开关语句中的分支标记
29、default:开关语句中的“其他”分治,可选。循环结构(3个)
30、为循环条件31、为循环条件
32、为循环条件(以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。)作为false为true真三、C99新增(5个)
33、inline:内联函数,是为了解决C 预处理器宏存在的问题所提出一种解决方案,用来提高函数使用效率。内联函数使用inline关键字定义,并且函数体和申明必须结合在一起, 否则编译器将他作为普通函数对待。
34、restric:关键字只用于限定指针;该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于(base on)该指针的,即不存在其它进行修改操作的途径;这样的后果是帮助编译器进行更好的代码优化,生成更有效率的汇编代码。
35、,包含标准头文件 stdbool.h 后,我们可以用 bool 代替 _Bool ,true 代替 1 ,false 代替 0
36、_Complex:表示复数,复数类型包括一个实部和一个虚部
37、_Imaginary:表示虚数,虚数类型没有实部,只有虚部

  • 变量数据类型

int: 整型数据

float: 单精度浮点型——浮点型就是浮点数,浮点数就是带小数点的数

double: 双精度浮点数
区别:
a、单精度,也就是 float ,在 32 位机器上用4 个字节来存储的;而双精度double是用 8 个字节来存储的,这是他们最本质的区别。
b、由于存储位不同,他们能表示的数值的范围就不同,也就是能准确表示的数的位数就不同。
c、单精度小数点后面共能精确到7位小数。双精度可精确到15位小数。注:变量赋值时不同类型对号入座
4、格式化输出函数printf

  • 函数概要:

printf 函数用于打印格式化字符串到标准输出流。
(格式化即将不同的数据类型转化为字符串的形式打印出来)

#include<stdio.h>  
 int main()
 {  
 	int a;
 	float c;
 	double d;  
  	a=2020;c=3.14;d=3.141592653;  
 	printf("Hello World%d\n",a);    
 	return 0;
    }
 —打印结果Hello World 2020;%d的意思占了一个坑,将后面紧跟着的变量a作为整形数据转换到%d(占位符)的位置printf("圆周率是: %.2f\n”,c);      ——f表示浮点数(单精度或者双精度);'.2'表示精确到小数点后2位printf("精确到小数点后9位的圆周率是:%11.9f\n”,d);  ——'.9'表示精确到小数点后9位;%11表示占了11个坑
  • %d整型、%f浮点型、%c字符、%s字符串;
    如果 % 后边的字符不是转换字符,则其行为没有定义。

5、常量

  • 整型常量:520,1314,123
  • 实型常量:3.14,5.12,8.97
  • 字符常量

-普通字符:‘L’,‘O’,‘V’,’E’
-转义字符:‘\n’,’\t’,‘\b’
字符串常量:“FinshC”

  • 符号常量:使用前必须先定义

6、定义符号常量
(1)格式:#define 标识符 常量 ——称之为宏定义;
define的功能是把程序中所有出现的标识符替换为定义的常量
例:
#define NAME “Cfyle”——即在下面的程序中所有的NAME替换为Cfyle
(2)为了将符号常量和普通的变量区分开,通常符号常量大写,变量名小写
(3)变量可以被改变,常量不可以

7、标识符

  • 标识符只能是英文字母和数字或者下划线组成
  • 第一个必须是字母或者下划线开头
  • 标识符区分大小写
  • 不能使用关键字来命名标识符
    符号常量名、变量名等等都属于标识符

8、字符和字符串、字符串常量

(1)字符:‘F’,‘i’…(注意单引号,内存准备1个字节)
例1:

#includ<stdio.h>   
int main()char a='C';--定义字符变量a,并赋值为C  
	printf("%c=%d\n",a,a);--打印出C=a的整型,即C的ASCII值 
	return 0;

例2:

#includ<stdio.h>   
int main()char a=70,b=105,c=115,d=104,e=67;--定义字符变量a,b,c,d,e并赋值为7010511510467   	
	printf("%c%c%c%c%c\n",a,b,c,d,e);--打印出这几个数字对应ASCII表中对应的符号即FishC   
	return 0;

注:其实字符型是一种特殊的整型对于整型只写int默认的是signed int即带符号整型,而char并没有具体规定,所以是无符号还是有符号要根据编译系统来确定!

例:

#includ<stdio.h>int main() char height;--定义字符变量 height   
	height=178;   
	printf("Cfyle的身高是%d\n",height);--打印出height
	return 0;

此时的运行结果是一个负数,显然是不对的。把char改为unsigned char确保height取值范围在0~255即可

(2)字符串:格式:char 变量名【数量】
例:
声明字符串: char name[5]
给字符串赋值:
name[0] = ‘f’;
name[1] = ‘i’
name[2] = ‘s’
name[3] = ‘h’
name[4] = 'c
或者char name[5]={‘F’,‘i’,‘s’,‘h’,‘c’};
例:

#include<stdio.h>   
int mian({ 
	char a[5] = {'F','i','s','h','c'}; 
	printf("%s\n",a);
	printf("%Hello\n);
	return 0;
 }

这么写事实上是错误的,以为定义的字符串a[5]在内存中只准备了5个字节的空间,而f i s h c已经占满了,没有留出空间给\0表示赋值结束,没有结束标志就会一直赋值,编译会出现乱码

  • 改法:char a[6]= {‘F’,‘i’,‘s’,‘h’,‘c’,’\0’};

那如果数据很多呢,那要不要数出来有多少个数呢?
事实上,编译器会自动计算的,因此写成char a{] = {‘F’,‘i’,‘s’,‘h’,‘c’,’\0’};就可以了还可以直接写字符串常量char a[] = {“Fishc”};(注意是双引号!;也可以把大括号去掉)
9、数据类型

  • 基本类型:整数(int)、浮点数(float/double)、字符(char)、布尔类型(_Bool)、枚举类型
  • 指针类型
  • 构造类型:数组类型、结构类型、联合类型
  • 空类型

注:可以加限定

short int(比int更短)、long int(比int更长)、long long int、
没有具体的范围,只规定short int<=int<=long int <=long long int
_Bool只有两个值true或者flose
10、sizeof 运算符

  • sizeof运算符用于获得数据类型或表达式的长度
    例:
    (1)sizeof(对象)对象可以是某一个变量名,表示获得这个变量的字节长度
    (2)sizeof(类型)类型是某一个数据类型,表示获得这个数据类型的字节长度

11、signed和unsigned

  • signed:表示该变量是带符号位,可以理解为可以存放负数
  • unsigned:表示该变量不带符号位,可以理解为可以存放0和正数

加上singed和unsigned后int就有了8种:

[signed] short [int]=short
unsigned short [int]=unsigned short
[signed] int =int
unsigned int=unsigned int
[signed] long [int]=long
unsigned long [int]=unsigned long
[signed] long long [int]=long long
unsigned long long [int]=unsigned long long

即“[ ]”中的可以省略不写’

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值