C语言学习day2

  • 什么是c语言
    • C语言是一门计算机语言
      • 人和计算机交流的语言
      • eg:C/C++/Java/Python
    • 计算机语言的发展
      • 二进制语言(低级语言)
        • 1 0 
      • 汇编语言
        • 将特定序列0 1 表示含义用助记符表示
        • 10100001——ADD
      • 高级语言
    • C语言标准
      • 国际标准 ANSI C—C89/C90
      • 其他标准 C99/C11→不流行,许多编译器不支持
    • C语言编译器
      • Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C
  • C代码
    • .c文件→源文件
    • .h文件→头文件
  • 写C代码
    • 创建工程
    • 创建源文件(.c)
    • 写代码
  • C基本框架
    • int main()
      {
      
        return 0;
      }

      main函数→主函数,程序的入口,从main函数第一行开始执行

    • main函数必须出现,仅有一个

    • int→整型;main前面的int表示main函数调用之后返回一个整型值

    • return 0→返回整数(0)

    • {  }内完成任务

    • printf("xxx")打印函数

      • 库函数,使用需要用#include<  >

    • \n表示换行

  • 数据类型(不同类型向内存申请空间大小不同,申请的方式→创造变量)
    • char 字符数据类型
    • short 短整型
    • int 整型
    • long 长整型
    • long long 更长的整型
    • float 单精度浮点数(浮点型→小数)
    • double 双精度浮点数
      • 双精度较单精度小数点后能表示数据多一些
    • 将字符存起来→
      • #include<stdlib.h>
        int main()
        {
          char ch ="A"
          printf("%c"/n, ch)
          return 0;
        }
        
        //向内存申请一块空间来存放字符“A”
        //char 字符类型
        //char ch 创造一个字符类型变量ch(向内存申请空间的名字是ch)
        //char ch ="A" ch里用=的形式放一个字符A
        //%c 打印字符格式的数据
        //"%c\n", ch  以字符的形式打印ch
        
        %后面
        %d 打印整型
        %c 打印字符
        %f 打印浮点数字 (小数)
        %lf 双精度浮点型
        %p 以地址的形式打印
        %x 打印16进制数字
        %o 8进制
        
        
        
        #include<stdlib.h>
        int main()
        {
           int age = 20       
           printf("%d",age)
           return 0;
        }
        
        
        //​int age = 20   创建一个整型的变量"age",并为其赋值20
        //printf("%d")    打印整型十进制数据
        
        
        //int 整型
        //short int 短整型
        //long 长整型
        
        long num = 100
        printf("%d\n", num)
        
        float f = 5.0
        printf("%f\n", f)
        
        double d = 3.14
        printf("%lf\n", d )
    • 计算不同数值类型的大小(向内存申请空间的大小)
      • #include<stdlib.h>
        int main()
        {
        
        printf("%d\n", sizeof(char));//
        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 比特位

            • 计算机中最小单位

            • 计算机是硬件→通电,正电1,负电0,一个比特位存放一个二进制位

          • byte 字节

            • 1字节=8比特位

            • 10110011→一个字节大小

          • kb

            • 1kb=1024byte

          • mb

            • 1mb=1024kb

          • gb

            • 1024

          • tb

            • 1024

          • pb

            • 1024

      • char→1个字节

      • short→2个字节

        • 两个字节→16个比特位→2^16种可能,可以表示0和2^16-1个数字,可以表示最大数字为65535(实际上第一个比特位为表示正负的符号位,即表示正数时第一位0,表示负数时第一位1,16位的二进制所能表示的最小的负数为1000 0000 0000 0000(其补码(原码符号位不变,其余位取反,然后加1)与原码相同)(负数转十进制时-1取反,还是1000 0000 0000 0000即-2^15),由于±0都表示数学上的0,而二进制储存中十进制的数字-0与16位二进制存储中的最小值1000 0000 0000 0000一样,会造成混淆,因此规定1000 0000 0000 0000表示16位二进制中最小值(算的时候首位位1,对应整数为负,先反再换算,对应大小为0111 1111 1111 1111,符号为负),即-2^15=-32768,而表示正数的时候,最高位为符号位且为0,即最大值为0111 1111 1111 1111,即2^15-1=32767,因此16位的短整型所能表示的范围是【-32768,32767】)

        • 0000000000000000→1111111111111111

          • 0000000000000000+1→0000000000000001;+1→ 0000000000000010;+1→0000000000000011;+1→0000000000000100
        • short age = 20;   向内存申请2个字节=16bit位,用来存放20(age这个变量)

      • int→4个字节

      • long→4个字节或者8个字节

        • c语言标准规定 sizeof(long)≥sizeof(int)

        • 不同编译器可能不同

      • long long→8个字节

      • float→4个字节

        • 软件默认位双精度型,如果想用单精度型表示要在小数后面加个f

          • eg:float weight = 95.6f;  f为将双精度变为单精度

          • 向内存申请4个字节,存放小数95.6 

      • double →8个字节

  • 变量、常量
    • 变的量与不变的量
  • 定义变量的方法
    •  “类型“” + “变量名”  +  “=” + “数值”
    • int age = 20;
    • float weight = 45.5f
    • char ch = "w"
  • 变量的分类
    • 局部变量→定义在代码块{ }之外的变量
    • 全局变量→定义在代码块{ }内部的变量
    • 局部变量与全局变量相同时,局部变量优先
    • 局部变量与全局变量名字建议不要相同—容易误会产生bug
    • eg
      int num2 = 20;  //全局变量
      
      int main()
      {
      
       int num1 = 10;  //局部变量
       return 0 ;
      }
      
      
      注意:全局变量与局部变量可以相同且同时存在,但局部变量优先
      
      如
      
      #include<stdlib.h>
      
      int a = 100;
      
      int main()
      {
       int a = 10;
       printf("%d\n", a)
       return 0;
      }
      
      
      输出结果为10

  • 变量的使用
    • 计算两个数的和
      • scanf→输入函数,输入数据
        #include<stdlib.h>
        
        int main()
        {
        
        	int num1 = 0;
        	int num2 = 0;
        	int sum = 0;
        	scanf("%d%d", &num1, &num2);//scanf函数→输入函数,输入数据;&取地址符号
        	sum = num1 + num2;
        	printf("sum = %d\n", sum);
        	return 0;
        }
        //语法错误:缺少“;”(在“类型前面”的解决方法):c语言语法中,变量要定义在当前代码块的最前面
        
         
  • 变量的作用域和生命周期
    • 作用域
      • 一段程序代码中所用到的名字并不总是有效/可用的,限定这个名字的可用性的代码范围就是这个名字的作用域
      • 变量哪里可以用,哪里就是变量的作用域
      • 局部变量的作用域是变量所在的局部范围
      • 全局变量的作用域是整个工程
      • eg1.局部变量
        •  里面大括号内部为作用域,printf不可用  / 外面大括号内部为作用域, printf可用
      • eg2.全局变量

         

         

         

        • extern:声明外部变量

           

          • 1号工程的全局变量g_val
          • 在二号工程中使用(解决未声明的标识符)
    • 生命周期
      • 变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
      • 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束
      • 全局变量的生命周期是:整个程序的生命周期
  • ps:还是幕布做笔记好用orz,这个插代码方便一些

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值