修炼第一章初识c语言,在这一章我们会粗略的介绍我们将在c语言学习的知识点!但是呢有同学可能会说我们难道要一次学完吗?不不不,在这一章我们会介绍一些简单的然后更多的部分是等后面详细来介绍。废话不多说,让我们开始今天的学习吧。
第一个程序的步骤先要创建项目,创建源文件,写代码,编译和运行代码。那么我们该怎么创建项目呢?工欲善其事必先利其器,我们得先下载一个vs2019.vs2019是Vs系列,是一个集成开发环境。那么我们再安装过后该怎么创建项目呢
在打开Vs2019之后将会出现这个界面,此时我们该点击创建新项目,此时又会出现一个新界面
这时我们点击空项目即可!然后再点击下一步
下一步点击过后我们会在来到一个新的界面,此时我们可以修改这个项目的名称并在点击创建。此时我们的新项目就创建完成啦,然后我们就会得到这样一个界面
看到里面的资源管理器说明项目创建成功,我们再继续创建源文件吧!只需要选中资源管理器里面的源文件,右击选择添加再选择新建项。
还有最后一步我们就创建完毕源文件啦,那么最后一步是什么呢?没错就是修改源文件的名称。
在这个页面中我们选择c++文件,并且在名称改为.c为后缀的名称。要是不改的话,会默认为c++的语法格式。这一步完成之后我们就可以开始写代码啦!输出一个hehe吧
#define _CRT_SECURE_NO_WARNINGS
#include
int main( )
{
printf("hehe\n");
return 0;
}
让我们来一步步解释吧!main函数是代码的入口,代码从main函数下的第一行开始!大括号是代码块,return是一个返回,至于为什么要返回0呢是因为main函数是int类型,二者形成前后呼应!由于main是一个函数所以会带有一个括号,至于括号里的参数一般不写但也有一些教材上写为void,这种写法也是可以的·,至于void main这种形式太过于古老不值得推荐
#include
int main(void)
{
printf("hehe\n");
return 0;
}//这种形式也可以哦!void的意思是代表空类型
void main( )
{
printf("haha\n");
}//这种写法则为更加古老,不值得学习
还剩下Printf函数,printf是一个库函数是由c语言本身提供的一个函数,在使用时要引用头文件stdio.h不然会报错!
此外在写代码时还有一些值得注意的点:1,main函数在整个工程中有且只有一个。当我们在程序中写多个main函数时在运行时代码会进行报错提示mian函数已有主体。此时我们把多出来的mian函数注释掉,代码就可以正常运行啦
运行和编译代码直接选择ctrl+f5,不过在某些电脑上要按ctrl+fn+f5也可以运行!调试代码按f10或者fn+f10(更多调试的方法将会在后面的学习中介绍)
以上就是我们写的第一个程序!更多详细介绍将会在后期学习中,慢慢学吧!
数据都有哪些类型呢?让我们一起来看看吧。
int 整型类型 | long 长整型 |
short 短整型 | long long 更长的整型 |
double 双精度浮点型 | float 单精度浮点型 |
char 字符型 |
为什么要有这么多种类型呢?在解答这个问题之前我们先来了解一下计算机中的单位:bit(比特)byte(字节),KB ,MB,GB,TB,PB。一比特等于8字节,1byte=8bit,1KB=1024byte,1MB=1024KB等等,其中数据类型的大小是以字节为单位。有这么多种类型是因为每个事物的大下不一样为其·找到合适的单位大小避免造成空间浪费!
那么·这些数据类型的大小是多少呢?在这里我们需要使用一个工具:sizeof。sizeof是一个关键字用来计算类型长度即所占空间大小,单位也是字节。我们一起来写代码计算其大小吧
#include
int main()
{
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(char));
return 0;
}
通过运行代码我们可以知道,Int,long,long long , short, double ,float, char的大小分别为:4,4,8,2,8,4,1。在这里我们可能会有一个疑问就是long不是长整型吗?为什么它的大小和int的大小一样?这是因为在c语言中规定sizeof(long)>=sizeof(int)。这里提一下%d的意思是以十进制的形式进行整数打印
我们已经了解了数据类型以及它们的大小,现在该怎么进行使用呢?怎么来利用一个数据类型来创建变量呢?上代码
#include
int main()
{
char ch = 0;
//这个的意思是创建了一个字符类型的变量,变量名为ch,初始化为0;
char ch1;
//创建了一个字符变量,变量名为ch1,没有初始化
int a = 0;
//创建了一个整型变量,变量名是a,初始化为0;
return 0;
}
数据类型的使用变量的创建,本质是在内存中申请一块空间,并将其命名为变量名!
在c语言中把不可以变化的量称之为常量,例如:血型,身份证号,性别等。把可以变化的量称之为变量。变量常量怎么写呢?很简单,有两种方式。第一种:类型+变量名。第二种:类型+变量名+初始值。上代码,我们一起来瞧瞧吧!在这里要注意=和==的用法,num=20的意思是把20赋值给num,而num==20的意思是Num的值为20。在进行给变量赋值时使用的一定是=而不是==
int main()
{
int a ;
int b = 10;
return 0;
}
这种就是变量的使用是不是很简单呐
一句话教你分辨哪个是全局变量哪个是局部变量!在大括号里面的是局部变量在大括号外面的是全局变量。
#include
int b = 10;
int main()
{
{
int a = 0;
}
printf("%d\n",a);
printf("%d\n",b);
return 0;
}
在这个代码中,a在大括号里,所以a是一个局部变量。b是一个全局变量。所以第一个printf无法打印a的值但是可以打印b的值。因为局部变量只进生命域创建出生命域销毁,它的作用域在其生命域中。而全局变量的生命域是整个工程,它的作用域也是整个工程,所以可以直接打印。全局变量也可以跨文件使用,上代码
不是说全局变量可以跨文件使用吗?为什么这里还会报错呢?这是因为在使用跨文件的去安居变量时要用一个外部声明符extern。在后面的学习中我们会详细来说extern的使用,现在大家记住使用跨文件的变量时要进行声明,此时就可以正常使用啦
注意:局部变量的名称尽量不要和全局变量的名称相同。要是局部变量和全局变量的名称发生冲突,局部变量优先!!!
作用域:是程序设计概念。一般来说,一段代码中所用到的名字并不总是有效/有用的而限定这个名字的可用性的代码范围就是这个名字的作用域
局部变量的作用域是变量所在的局部范围;
全局变量的作用域是整个工程。
生命周期:变量的生命周期指的是变量的创建到变量销毁之间的一个时间段。
局部变量的生命周期是:进入生命周期开始,出作用域生命周期结束。
全局变量的生命周期:整个程序的生命周期。
分类:
字面常量,就比如是3.14,5啊这种常量
const修饰的常变量:常量具有了常属性不可以被修改,但本质上还是一个变量
int main()
{
int a = 10;
a = 30;
printf("%d ", a);
return 0;
}
此时a的值被改为30..当我们在a的前面加上const结果又会如何呢?一起来看看吧!
在int a的前面加上const之后再对a进行赋值改变,程序会报错并且显示左值是不可修改的·。还是那句话,当变量有const修饰时具有了常属性不能再被修改
#define定义的标识符常量
这种很简单,语法形式是:#define 变量名 常数值
#define pi 10
int main()
{
int arr[pi] = { 0 };
return 0;
}
这里的Pi不再是一个变量而是一个常量
枚举常量:enum,枚举枚举也就是一一列举,其语法格式为:
#include
enum 变量名
{
//方块里列举可能出现的可能性
};//最后的分号一定要加
#include
enum sex
{
MALE,
FEMALE,
SECRET
};
int main()
{
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
return 0;
}
这个结果是0,1,2。默认是从0开始,然后依次加1.。要是想改变初始值可以在MALE部分给她赋初值,从而达到改变的效果。
转义字符:改变字符原来的意思
//在这里我们想打印出c:\test\test.c的效果
int main()
{
printf("c:\test\test.c");
return 0;
}
但是运行的结果却和我们想象中的不一样
好的,现在再回到上面那个问题之所以会有空格产生是因为\t,所以我们要在\t之前加一个\,使其不能成为转义字符
此时达到了我们想要的效果!!!
再补充说明一下,二进制八进制十六进制十进制都是数据的不同表现形式,并且进制的每一位都有相应的权重。
以15为例,二进制是1111,八进制是17,十进制是15,十六进制是F。那又有一个问题,计算机能够识别二进制,字符在计算机中是怎么存储的呢?字符不方便存储,因此利用ASCII码表对其进行编号然后在转化为二进制进行存储!例如A的ASCII码表值为65,a的ASCII码表值为97。有兴趣的小伙伴可以去看看ASCC码表噢
注释
int main()
{
int a = 10;
int b = 20;
int sum = a + b;
printf("%d ", sum);//这个代码的意思是把a和b的加起来的和放在sum中
return 0;
}
其中c语言和c++也有各自的代码风格
int main( )
{
int a = 10;
//int b = 56;
//int c = 30;这种是c++的代码风格
/*if(a>b)
printf("%d ",a); 这种是c语言的代码风格*/
return 0;
}
C语言的代码风格的缺陷是无法进行嵌套!!!别的都挺好!
今天的内容就到此为止啦,以上就是今天学习的全部内容啦。么么哒