CTRL k+c //选择部分全部全部注释          CTRL k+u //解除注释     

可以在VS上直接点

学习C语言第一课<笔记>_局部变量


#define _CRT_SECURE_NO_WARNINGS 1

.c--源文件

.h--头文件 head


一般代码都有一个框架


int main()

{


     return 0;

}

//包含一个叫stdio.h的文件

//std-标准 standard input output

#include<stdio.h>

    

      //main前面的int表示main函数调用返回一个整形值

int main()  //主函数-程序的入口  不能没有main函数 也不能有多个main函数 有且仅有一个

{

     //这里完成任务

     //在屏幕上输出hello world

     //函数-print function -printf-打印函数

     //库函数-C语言本身提供给我们使用的函数

    printf("hehe\n");  

    return 0;//返回 0

}


写一个代码

#include<stdio.h>

int main()  

{

    printf("hehe\n");

    return 0;   


}


数据类型

char       //字符数据类型       我理解的是字母ABC这种

short     //短整形

int         //整型                       我理解的是数字

long      //长整型

long long      //更长的整型

float               //单精度浮点数

double        //双精度浮点数  


%d-打印整型               我理解的是数字

%c-打印字符                我理解的是字母ABC这种

%f-打印浮点数字-打印小数

%p-以地址的形式打印

%x-打印16进制数字

……

#include<stdio.h>

//char-字符类型

int main()

{

        //char ch = 'A';                //内存

        //      printf("%c\n",ch);        //&c--打印字符格式的数据

        //int age = 20;

        //printf("%d\n", age);        //%d--打印整型十进制数据

        //long num = 100;

        //printf("%d\n", num);

        //float f = 5.2;

        //printf("%f\n", f);

        double d = 3.14;

        printf("%lf\n", d);          //%f也可以 但%lf更合适  %lf表示双精度浮点数

        return 0;

}


//计算申请内存的大小


#include<stdio.h>

int main()

{

        printf("%d\n", sizeof(char));                //1    指的是  字节                    

        printf("%d\n", sizeof(short));

        printf("%d\n", sizeof(int));

        printf("%d\n", sizeof(long));

        printf("%d\n", sizeof(long long));

        printf("%d\n", sizeof(float));

        printf("%d\n", sizeof(double));

        return 0;

}



计算机中的单位

bit-比特位

byte-字节  =8bit

kb=1024byte        

mb=1024kb

gb=1024mb

tb=1024gb

pb=1024tb


二进制


10进制

0 1 2 3 4 5 6 7 8 9


2进制

0 1 


8进制

0 1 2 3 4 5 6 7









一共2^16种

即2^16个数字


short//两个字节

2个字节=16个bit


short能表示的二进制序列:

0000000000000000       =0

0000000000000001       =1

0000000000000010       =2

0000000000000011       =3

0000000000000100

……



1111111111111111

123  十进制数字

1*10^2+2*10^1+3*10^0=123



如果是二进制表示的

010

0*2^2+1*2^1+0*2^0=2


011

0*2^2+1*2^1+1*2^0=3


short  2个字节  16个bit

能表示2^16个数字

但从0开始

所以最大能表示2^16-1这个数字           2^16-1=65535


如果我们想表示年龄

int age = 20;  //用这个的话有点浪费  因为int是整型  申请的是4个字节  即32个bit     最大表示的数字是2^32-1

所以用short int age = 20;   //更加节省空间  //向内存申请2个字节=16bit位,用来存放20

#include<stdio.h>

int main()

{

        short age = 20;

        float weight = 98.6f;//默认98.6是double类型,所以会出错.要在98.6后面加f就好

        printf("%d\n", age);

        printf("%f\n", weight);

return 0;

}

变量、常量

生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)

有些值是可变的(比如:年龄,体重,薪资)。

不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示

定义变量的方法

int age 150;

float weight 45.5f;

char ch 'w';

变量的分类

局部变量

全局变量

#include <stdio.h>


int global = 2019;//全局变量-定义在代码块({})之外的变量


intmain()

{

   int local =2018;//局部变量-定义在代码块({})内部的变量

上下有两个global,上面的属于全局变量,下面的属于局部变量,可以同时存在

   printf("global = %d\n", global);

   return0;

}

全局变量和局部变量名字建议不要相同--容易产生误会,产生bug

当全局变量和局部变量名字相同时,优先局部变量


加法代码

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

int main()

{

        //计算2个数的和

        int num1 = 0;

        int num2 = 0;

        int sum = 0;        //C语言语法规定,变量要定义在当前代码块的最前面

        //输入数据-使用输入函数scanf

        scanf("%d%d", &num1, &num2);//取地址符号-&

        sum = num1 + num2;

        printf("sum=%d\n",sum); 

        return 0;

}

作用域

作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的

而限定这个名字的可用性的代码范围就是这个名字的作用域。

1. 局部变量的作用域是变量所在的局部范围。

2. 全局变量的作用域是整个工程。

当我在另一个源文件中输入


int g_val=2020;

然后在之前的源文件中

#include<stdio.h>

int main()

{

//未声明的标识符

//声明-extern-外部符号的

extern int g_val;

printf("g_val=%d\n",g_val);

return 0;

}

生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

2. 全局变量的生命周期是:整个程序的生命周期。