C语言笔记-1

一.什么是编程语言?

编程语言是人类与机器打交道的枢纽,它充当人类的翻译官

(编译就是将人类语言编写翻译为机器语言:二进制的0和1)

第一代编程语言:机器语言。(低级语言)

第二代编程语言:汇编语言。(低级语言)

第三代编程语言:C语言、C++、python等等。(高级语言)

高级语言的代码段较于低级语言简洁易于编写修改和理解

C语言编译流程:C语言->汇编语言->机器语言->CPU读取->执行指令


二.C语言特点

什么是C语言

C语言是一门通用计算机语言,善长底层开发(应用层以下):驱动、操作系统。

C语言标准

二十世纪八十年代,由美国国家标准局为C语言定了一套完整的国家标准语法:ANSI C

(早期C语言因为各种厂商的魔改导致各个厂商之间的代码不能互相编译,所以为其定制了一个语法标准)

优势

1.效率高

C语言是一种编译型语言(对应的另一种是解释型语言)

其源代码最终编译成机器代码:可执行文件。(windows的.exe后缀文件)

解释型语言JAVA、Python、Ruby。

解释型语言不直接编译成机器码,而是编译成中间代码。(JAVA转换为字节码)

        JAVA既是编译型语言也是解释型语言

        JAVA代码编译成.class文件,编译型

        通过JVM读取.class文件,解释型

2.灵活度高 (体验过了)

一个词:指针(灵活多变)

3.可移植性高


三.编译器

初学者通用,个人建议Dev c++:腾讯管家渠道下载的DEV c++

进阶使用可以用VS2019、VScode等等。

VS2019:VS2019(集成开发环境) 
个人使用选择即可

MAC用户请使用这个链接:VS2019 for MAC

注:edge等部分浏览器浏览时,需要登录你的微软账号。

VSCode:VSCode 

支持多种系统


四.第一个程序

#include<stdio.h>

int main()
{
    printf("Hello word!\n");
    return 0;
}

(我学会了所有语言的Hello Word bushi)

输出结果


五.成分

#include<stdio.h>//包含头文件

int /*函数返回类型*/main()//主函数
{
    printf("hello word");
    return 0;//返回0
}//函数体

C语言代码是从主函数的第一行开始执行的,主函数main()是C语言程序的入口。

一个工程项目

1.一个工程项目中可以有多个.c文件

2.但是多个.c文件中只能由一个main函数       

//一个工程中只能有一个main函数,只能有一个入口。

int代表main()函数的返回类型:整型。

{}内是main()函数的内容,即函数体。

printf()也是一种函数,为了使用它,需要包含头文件:#include<stdio.h>,头文件名称:stdio.h。


六.数据类型

作用

描述数据类型

数据类型

char        //字符数据类型
short       //短整型
int         //整型
long        //长整型
long long   //更长的整型
float       //单精度浮点数
double      //双精度浮点数

(整型:数字)

#include<stdio.h>

int main()
{
    //字符类型
    char c='c';
    //整型
    int i=100;
    //短整型
    short s=10;
    //长整型
    long l=1000;

    //long long比long更长一些
    //单精度浮点类型
    float f=2.1;
   //双精度浮点类型
    double d=2.12;
    //双精度比单精度更精确些

    return 0;
}

每种类型的大小

通过printf()sizeof()函数

#include<stdio.h>

int mian()
{
//字符
    printf("字符:%d\n",sizeof(char));
//整型
    printf("整型:%d\n",sizeof(int));
//短整型
    printf("短整型:%d\n",sizeof(short));
//长整型
    printf("长整型:%d\n",sizeof(long));
//长长整型
    printf("长长整型:%d\n",sizeof(long long));
//单精度浮点类型
    printf("单精度浮点类型:%d\n",sizeof(float));
//双精度浮点类型
    printf("双精度浮点类型:%d\n",sizeof(double));
}

七.变量和常量

顾名思义,变量是可以变化的量,如时间,日期等,常量是不能改变的量,比如圆周率,重力等。

变量

数据类型 变量名=变量

int main()
{//创建一个变量,变量名为“a”,给这个变量赋值10
    int a=10;
}

变量分为:局部变量全局变量

局部变量-{}内部

全局变量-{}外部

当局部变量和全局变量名字冲突下,局部变量优先!!

int b=100;//全局变量

int main()
{    //局部变量
    int a=10;

    return 0
}

变量的使用

#include<stdio.h>

int main()
{
    int a=0;
    int b=0;
    scanf("%d%d",&a,&b);//scanf()函数,&a将第一个%d得到的数据指向变量a并赋予它
    int sum=a+b;
    printf("%d\n",sum);
    return 0;
}

变量的作用域和生命周期

  • 作用域:

        变量可作用范围

#include<stdio.h>

int main()
{
	int a = 10;
	int b = 101;
	{
		int b = 100;//该变量作用域只限于该大括号范围内
		printf("b1=%d\n", b);
	}
	//int a=11;系统报错,该作用域内的a已经声明过,不能再次声明
	a = 11;
	printf("a=%d	b2=%d\n", a, b);
	return 0;
}

        局部变量的作用域:就是局部变量所在的局部范围。

        全局变量的作用域:整个工程。//全局变量不能之间跨文件使用 ,需要声明一下

//1.c
int a=100;

//2.c

#include<stdio.h>

extern int a;//继承全局变量a并声明。

int main()
{
    printf("%d",a);
}
  • 生命周期

        一个变量的生命周期就是它的创建到销毁的时间段。

        局部变量

                进入局部范围“{”,生命开始,出局部范围“}”,生命结束。

        全局变量

                程序的生命周期(main函数的生命周期。

常量

不变的量

  • 字面常量

    没有意义,但存在;

int main()
{
    1;
    1.1;
    'a';

    return 0;
}
  • const修饰的常变量

        

#include<stdio.h>

int main()
{
    int a=25;
    const int num=250;
    a=20;
    //num=25;执行报错,num变量已经被const修饰不可变
    printf("num=%d a=%d",num,a);

    return 0;
}

        num属于常变量,并不是常量,本质上属于变量。

#include<stdio.h>

int main()
{
    const int a=10;
    int b[a];//编译会失败,因为c语言中数组方括号内必须是常量,而a是常变量
    return 0;
}

c++中不用担心这个现象。 

  • #define定义的标识符常量
#define MAX 250
// 被替换的常量必须是全大写

#include<stdio.h>
int main()
{
    int a=MAX;
    printf("a=%d",a);

    return 0;
}

        MAX是常量,无法更改。

  • 枚举常量

用于可以一一列举的常量

#include<stdio.h>

enum Sex
{
    BOY,
    GIRL
};//提前定义Sex未来的可能取值,并限制只能使用枚举内的值。
int main()
{
    enum Sex a=BOY;

    return 0;
}

枚举常量是从0开始

#include<stdio.h>

enum A
{
    a,b,c,d
};
int main()
{
    printf("%d    %d    %d    %d",a,b,c,d);

    return 0;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值