太阳不下山 发表于 2021-7-9 09:02:47

C语言编程学习笔记(鹏版)2021/7/6

  1.初识C语言
  什么是C语言
  C语言是一种计算机语言
  计算机语言是什么?
  人和计算机交流的语言,C/C++/JAVA/python
  语言的发展:低级语言———>高级语言(进化类比照相机发展史)
  二进制语言
  硬件-电-正电/负电
  1       0
  初识科学家要翻二进制手册
  10100001 - ADD- 助记符-汇编语言
  B语言
  C语言-C++    ---进化到高级语言
  C语言——>早期不是很成熟——>成熟——>流行
  国际标准:ANSI C-89-     ——C89/C90标准
  C99/C11并不流行----不少的编译器不支持
  常见的编译器Clang,GCC,WIN-TC,SUBLI
  写C代码步骤
  1.创建工程、新建项目,选中Visual  C++——>选中空项目——>设置名称,存储位置
  c代码
  .c - 源文件
  .h - 头文件(head文件最头部)
  2.右键添加新建项,设置文件名为xxxx.c
  3.写代码
  #include<stdio.h>                  //包含一个叫stdio.h的文件
  //std-标准 standard input output(标准输入输出)
  int main()                               //主函数-程序的入口-main函数有且只有一个(在此地按住Fn+F10后会从此运行开始)
  //int是整数型的意思
  //main前面的int表示main函数调用返回一个整型值(void main()这种是过时的写法)
  {
  printf("hello\n");                  //这里完成任务
  //在屏幕上输出hello  world
  //函数-print function-printf-打印函数(输出显示)
  //双引号内是显示的内容,斜杆n是换行
  //库函数-C语言本身提供给我们使用的函数——是别人的东西——所以要打招呼——即#include
  return 0;                             //返回的意思=0
  }
  Ctrl+F5=直接运行
  Fn+Ctrl+F5=执行过程显示
  Fn+F10=坐标处开始运行一行
  此时因为执行过快一闪而过
  所以要右击工具栏里的项目名称(test-2-27)进入属性页
  配置属性——链接器——系统——子系统,将其改为控制台
  再次运行即可得到不灭的显示
  数据类型
  char                            //字符数据类型                          %c
  short/short int           //短整型                                     %d
  int                              //整型                                         %d
  long                          //长整型                                       %d
  long long                 //更长的整型                                %d
  float                         //单精度浮点数                             %f
  double                    //双精度浮点数(小数点更精确) %lf
  %d——打印整型
  %c——打印字符
  %f——打印浮点数字--打小数(%.1f表示精确到小数点后一位 )
  %p——以地址的形式打印
  %x——打印16进制数据
  %o——打印8进制数据
  %s——打印字符串
  字符类型使用方法
  int main()
  {
  char ch=’A’                            //字符需要用单引号‘’括起来,字符串用双引号“”
  //为该字符向内存申请空间来存放——字符类型
  printf("%c\n",ch);                   //%c--打印字符格式的数据(表示我以字符的形式来打印ch)
  return 0;
  }
  整型使用方法
  int main()
  {
  int age=20;
  printf("%d",age);                     //%d--打印整型十进制数据
  计算该字符所占内存
  int main()
  {
  printf("%d\n",sizeof(char));              //sizeof表示谁谁的大小
  //sizeof(char)表示字符型数据所占内存的大小
  return 0;
  }
  char——>1字节
  short——>2字节
  Int——>4字节
  long——>4/8字节
  long long——>8字节
  float——→4字节
  double——→8字节
  字节(计算机中的单位)
  bit - 比特位
  byte - 字节=8个比特位
  kb=1024字节
  mb(兆B)=1024kb
  gb=1024mb
  tb=1024gb
  pb=1024tb
  因为计算机是硬件,要靠通电的变化正电(1)负电(0)1个比特位仅能存放一个1或0,
  只能遵循二进制原则(对比十进制计算学习,例:010=0*2^2+1*2^1+0*2^0)
  所以细化这些类型是为了使用对应有限的类型减少内存使用量,合理节省优化程序大小。
  C语言标准规定sizeof(long)>=sizeof(int)所以long对应4或8取决于平台
  定义变量的方法
  int age=150;
  float weight=45.5f;
  char ch=’w’;
  类型+变量名 附一个值
  变量的分类

[*]局部变量
[*]全局变量
  例:
  #include<stdio.h>
  int num2=20;                 //全局变量-定义在代码块({})之外的变量
  int main()
  {
  int num1=10;                //局部变量-定义在代码块({})内部
  return0;
  }
  注意:1.全局变量与局部变量的名字建议不要相同-容易产生误会,产生bug
  2.当局部变量和全局变量的名字相同的时候,局部变量优先
  下列代码在C语言中会显示错误,C++不会。
  int main()
  {
  //计算2个数的和
  int num1=0;
  int num2=0;
  //输入数据-使用输入函数scanf
  scanf("%d%d",&num1,&num2);  //取地址符号&  
  如果出错,认为scanf不安全则可能是vs中的SDL检查,此时右键单击工程文件——属性——c/c++——SDL检查选项——否     或者用scanf_c
                                因为scanf是C语言提供的,而scanf_s不是标准C语言提供的,是VS编译器提供的,所以最好不用这个,因为此时就不具备跨平台性、可移植性。
                                所以我们仍用scanf,但是在源文件第一行要加上#define _CRT_SECURE_NO_WARNINGS 1
                                意思是让警告全部   失效,define意思是重定义
                                VS显示不安全是因为,分配了5字节的空间但是用户输入了10字节,就会导致sccanf()读到10字节
  int sum=0;                                    //C语言语法规定,变量要定义在当前代码的最前面
  sum=num1+num2;
  printf("sum=%d\n",sum);
  return 0;
  }
  全局加入#define _CRT_SECURE_NO_WARNINGS 1方法
  开始菜单中找其图标右击——单击属性——看快捷方式的目标中文件位置——在计算机中找到该文件单击——找到并打开VC——找到并打开vcprojectitems工程文件——找到并打开newc++file.cpp——在记事本中打开并粘贴#define _CRT_SECURE_NO_WARNINGS 1或在Notepad++中打开并粘贴#define _CRT_SECURE_NO_WARNINGS 1——保存(Ctrl+s)如果出现失败则按确定重新启动这个文件——自动退出后再重新点进去保存就可以了
  下列代码在C语言与C++中都正确
  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;
  }
  变量的作用域和生命周期
  作用域
  程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。

[*]局部变量的作用域是变量所在的局部范围。
[*]全局变量的作用域是整个工程(但跨文件使用工程时要声明)。
  第一个文件:
  int main()
  int a=2021;
  第二个文件:
  int main()
  {
  extern int a;            //需要声明标志符,声明a是由extern外部符号来的
  printf("a=%d\n",a);
  return 0;
  }
  生命周期
  变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

[*]局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
[*]全局变量的生命周期是:整个程序的生命周期。

  
文档来源:51CTO技术博客https://blog.51cto.com/u_15293084/3019059
页: [1]
查看完整版本: C语言编程学习笔记(鹏版)2021/7/6