C语言学习笔记(一)

GitHub是什么

QQ空间和GitHub

QQ空间和GitHub。例如:

TYPE仓库内容权限
QQ空间QQ空间相册照片对所有公开/仅自己可见
GitHub代码仓库代码Public / Private

1.首先创建自己的GitHub账号,创建代码仓库,例如:C语言代码(C_Code)
2.使用GitHub Desktop桌面可视化工具或者使用命令行进行代码管理,具体怎么弄就不详细的说了,感兴趣的自己去了解了解吧。反正不动手可能永远都学不会!手动滑稽!

(一)重走取经路(C语言重新入门)

1.1 为什么说重走取经路

因为“C语言虐我千百遍,我待C语言如初恋!”

1.2 干就对了!

关于C语言的发展等内容自己去网上找找文档看看,别的就不扯了。
直接就是:干!只有撸代码才能更快成长!
我使用的环境是:Win10 + 64位 + Visual Stdio 2015
第一个C语言程序:

#include<stdio.h>  //头文件 std: stanard(标准) i:input(输入)  o:output(输出)
int main()   //主函数(整个项目中有且只有一个main()主函数,这个函数是整个项目(程序)的入口!)
{
	printf("Hello world!\n");  // printf(); 这是一个函数,用来在屏幕上输出 Hello world!紧跟着后面  \n  是换行(光标跳到下一行,Hello world 独占一行!); 要想使用printf();就要包含stdio.h头文件
	return 0;  // 这句表示函数有返回值,返回值为:0,并结束;
}
//void main() {}; 这种写法是可以的,但是已经过时了,仅仅跟着主流,别自己瞎搞。
//main前面的Int表示main函数调用返回一个整型值,所有 return 0;中的这个0就是整型 0。

1.3数据类型

type(类型)名称长度
char字符串数据类型1字节(byte)
short短整型2字节(byte)
int整型4字节(byte)
float单精度浮点型4字节(byte)
double双精度浮点型8字节(byte)
long长整型4字节(byte)
long long更长整型8字节(byte)

注意:C语言没有字符串类型

如何获取书类型长度:

#include <stdio.h>
int main()
{
	printf("%d\n", sizeof(char));       // 1
	printf("%d\n", sizeof(short));      // 2
	printf("%d\n", sizeof(int));        // 4
	printf("%d\n", sizeof(float));      // 4
	printf("%d\n", sizeof(double));     // 8
	printf("%d\n", sizeof(long));       // 4
	printf("%d\n", sizeof(long long));  // 8
	//getchar(); 
	return 0;
}

使用sizeof(类型) 得到的有1、2、4、8,这是?
答:这是数据类型占用的内存空间,1字节、2字节、4字节、8字节

C语言标准规定:sizeof(long) >= sizeof(int) 就是正确的,在不同的平台中有不同区别;

1.3.1数据类型的单位

在这里插入图片描述

1.3.2各个类型基本认识

变量:临时存储数据的空间;空间内存储的数据会随着需要随时变化。
常量:常量也是存储数据的空间,只不过程序运行起来,常量就不能被改变。大白话就是:固定不变的量。

类型转换说明符:

type(类型)符号描述
%d打印整型
%c打印字符型
%s打印字符串类型
%lf打印浮点型----小数
%p以地址形式打印
%x以十六进制形式打印
%o以八进制形式打印
#include <stdio.h>
int main()
{
	char ch = 'a';
	printf("ch = %c\n", ch); // %c 是类型转换说明符号,就是将ch这个变量以字符的形式展示出来。ch这个变量存储的数据是:a
	
	int age = 18;
	printf("age = %d\n", age); // 与上面的字符类型的解释是一样的, %d是将age这个变量以整型的形式展示出来,age这个变量存储的数据是:18
	//...
	//剩下的形式自己去搞一搞吧,五姑娘不能懒啊,要动起来。(^.^)
	
	return 0;
}

1.4 变量和常量

生活中有些值是变化的量(年龄,体重,薪资等)这就是变量。
生活中有些值是不变的量(圆周率,一天24小时,身份证号码等)这是常量。

1.4.1 变量的分类

(1) 局部变量
(2) 全局变量

#include <stdio.h>
int age = 30;   //全局变量,定义在{}(代码块)- 外部 - 的变量称为全局变量
int main()
{
	int age = 20; //局部变量,定义在{}(代码块)- 内部 - 的变量称为全局变量
	printf("age = %d\n", age); // 20
	return 0;
}

问1:可以注意到:这两个变量的便令名称是一样。那么这两个变量名能不能一样呢?
答案是可以一样!

问2:为什么能够一样?
答:原因是这两个变量的作用域不一样的。

建议:全局变量和局部变量的变量名称不要一样,容易造成误会,产生Bug!
注意:当全局变量和局部变量的变量名称一样的时候,局部变量优先!,这也说明的为什么上面的代码输出了 “age = 20”

作用域练习:

#include <stdio.h>
int main()
{
	{
		int age = 20; 
	}
	printf("age = %d\n", age); // error 报错:age在{}内部是局部变量,不能再{}外部使用,所以报错!
	return 0;
}

1.4.2 变量的作用域和生命周期

作用域:(scope):程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的。
而限定这个名字的可用性的代码范围就是这个名字的作用域。
1:局部变量的作用域十变量所在的局部范围。
2:全局变量的作用是整个项目(工程)。

这也就解释了上面的代码会报错了!

生命周期:变量的生命周期指的是变量的创建到变量销毁的一个时间段。
1:局部变量的生命周期:进入作用域,生命周期开始,出去作用域生命周期结束。
2:全局变量的生命周期:和整个程序的生命的周期一致。程序结束,全局变量的生命周期结束。

1.4.3 常量

C语言中的常量和变量的定义的形式有所差异:
C语言的常亮分为以下几种:
(1)字面量常量
(2)const 修饰的常变量
(3)#define 定义的标识符常量
(4)枚举常量

(1)字面常量:
‘a’:字符字面常量
3; 整形字面常量
3.14; 浮点类型字面常量
直接书写出来的值,就是字面常量。

#include <stdio.h>
int main()
{
	3;    //整形字面量常量
	'a';  //字符型字面量常量
	3.14; //浮点型字面量常量
	return 0;
}

(2)const - 常属性
const修饰的常变量
const char ch = ‘a’; //这是字符型的常变量。
const int age = 29; //这是整形的常变量。
虽然const修饰的变量有了常属性,值是不能再修改了,但是本质上依然是个变量。

#include <stdio.h>
int main()
{
	const int n = 20;
	//int char[n] = {0};  //这是错误的
	n = 30;  //这是错误的
	return 0;
}

(3)#define 定义的标识符常量

#include <stdio.h>
#define MAX 20;
int main()
{
	int char[MAX] = {0};  //正确 此时MAX是常量
	printf("%d\n", MAX); // 20
	return 0;
}

(4)枚举常量
生活中总是有些值是可以被列举出来的
例如:性别、周一到周日,一月到十二月等

#include <stdio.h>
enum WeekDay
{
	Monday,   //星期一
	Tuesday,  //星期二
	Wednesday,//星期三
	Thursday, //星期四
	Friday,   //星期五
	Saturday, //星期六
	Sunday    //星期日
};

enum Sex
{
	MALE,  //男
	FEMALE,//女
	SECRET //保密
};
int main()
{
	//定义枚举类型的变量
	enum WeekDay w = Monday;
	//打印枚举常量
	printf("%d\n", MALE);   // 0
	printf("%d\n", FEMALE); // 1
	printf("%d\n", SECRET); // 2
	//为什么是0、1、2?
	//因为只要没有特意的给枚举类型指定值,枚举类型默从 0 开始。
	return 0;
}
#include <stdio.h>
int main()
{
	//定义枚举类型的变量
	enum WeekDay w = Monday;
	w = Tuesday; //这是可以修改的,应为你修改的是由枚举类型创建出来的变量。
	//Tuesday = 5; //这是错误的,不能修改!!!
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值