前言:
本篇(c语言篇)主要是分享自己在学习过程中对c语言的理解,你也可以叫它笔记(哈哈哈)。这一章主要讲解的是c语言的一些基础知识,后续博主也会更新分支循环、函数、数组、操作符、指针、结构体等知识,如果有发现有错误和不足的地方,请各位大佬在评论区及时指出,在下先在这里谢过各位了。 在这里我就不多说什么了,我们正式开始c语言的学习之旅了。
目录
一、第一个c语言程序
刨析代码:
1.main
main被称为主函数,是程序的入口,有且仅有一个,程序是从main主函数中第一行开始执行,直到最后一行,执行完最后一行后不管怎么样整个程序结束,一个程序不能缺少main函数。
2.printf和#include <stdio.h>
printf是个库函数,库函数是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。printf库函数的使用(调用)得包含(#include)一个头文件stdio.h,printf是打印的意思,打印时需要加双引号。头文件的引用就像你去和别人借东西需要先和别人打招呼。
3.int--整型
在main主函数前的int是整型的意思,程序结束后需要返回一个整型的数与之对应,0则是返回值,当然你不写它也会返回一个随机值不会报错,但我们都会是一个优秀的程序猿(嘿嘿),所以都应该加上return 0;这条语句 。
注意:每条语句结束后需要加上结束后都需要加上英文下的;(分号),分号是该条语句结束的标志 博主就经常在语句结束后没加分号。当然大多数大括号后面是不需要加分号,但也会有少许大括号外需要加分号。
像do while循环
结构体
枚举常量
这三个是博主目前知道的特殊情况
二、数据类型
在开始讲解数据类型之前我们先来了解一下计算机的存储单位,话不多说我们上图。
所以一个byte可以是
所以一个byte有2的8次方种可能,所以一个byte可以表达的最大值为256(2的8次方)
c语言的数据类型有以下几种,它们大小的单位都为字节(byte),有了这些数据类型,能让我们更准确的表达某一事物事物。
短整型的另一种写法short int
长整型的另一种写法long int
另外,c语言是没有字符串类型的。
下面我们用sizeof这个语句来计算它们的大小,sizeof是用来计算字节(byte)大小的(后面会开专题讲解sizeof和strlen,当然也可以在其他博主找到关于sizeof和strlen的优质文章)
注意:sizeof不是函数。
数据类型的使用方法:
当然这里的float和double都可以用%f,但用scanf函数输入时,double就要严格的用%lf,建议大家double都使用%lf以免出现错误。
三、变量和常量
1、变量
对于一个变量来说,包括三要素:
变量的数据类型
变量的名字
变量中保存的值变量的定义:
变量的数据类型 + 变量的名字(可以自己起名字)+ 变量中保存的值如:
int a = 1;
变量必须先声明,再赋值才能访问,如下图,可以看出。
变量的值是可以改变的如下:
(1) 变量的作用域及生命周期
变量有局部变量及全局变量,这里我们直接上代码讲解:
#include <stdio.h>
int b = 10;
int main()
{
int a = 100;
printf("a = %d\n",a);
return 0;
}
在大括号外定义的变量为全局变量;在大括号内定义的都是局部变量,如上,b为全局变量,a为局部变量。当然全局变量的名字和局部变量的名字是可以重复的,小伙伴们可以去测试一下。
那么局部变量的作用域和生命周期又是怎么样的呢,我们上代码看:
这里我们可以看出a是可以打印的,因为它在同一作用用于内,接下来我们再来看看b
这里的b是错误的,所以可以看到b在另一个大括号中,当出大括号后b的内存就释放了,也就是说b的生命周期结束了 。
这里我们可以这样记:出了大括号就不认识了。
那么全局变量的作用域和生命周期又是怎样的呢:
这里我们可以看出全局变量a可以在大括号内打印,全局变量的作用域和生命周期是整个工程,当然想在同一工程不同文件下使用全局变量需要用到关键字extern + 数据类型 + 名字:
这里可以看到我们创建了两个源文件,当test1使用全局变量时,test2只要加上extern int num,就可以访问num了。
当全局变量和局部变量名字相同时局部变量优先打印
2、常量
常量是不能改变的量,就像身份证一样一旦确定就不能改变。它分为:1.字面常量、2.const修饰的常变量、3.#define定义的标识符常量、4.枚举常量。
(1) 字面常量
像这样的都是字面常量
'w'为字符常量,100为整型常量,3.14为浮点型常量,"张三"为字符串常量
(2) const修饰的常变量
我们可以看到第八行错误了,说名用const后a有了常量的属性,使得a不能发生改变
注意: 使用const后a具有常量属性,a不能变,但a还是个变量,所以也可以加常变量。
(3) #define定义的标识符常量
可以见到MAX为100,在定义MAX时可以小写,但大多数程序猿都是用大写的。那么我们该怎么证明它是常量呢如下:
如图可知#define定义的标识符是常量
(4)枚举常量
其中Sex和大括号中的可以自己定义名字
当然我们也可以在enum中给常量赋值,当你在给MALE赋值时,后面的常量会按照前面的数字按顺序排下去。
上图说明了它是常量