初识C语言(作者进阶版)

文章目录

  • 1.什么是C语言
  • 2.第一个C语言程序
  • 3.数据类型
    • 4.2类型的使用
    • 4.3计量单位(计量存储容器)
  • 4.变量,常量
    • 4.1定义变量的方法
    • 4.2变量的命名
    • 4.3 变量的分类
    • 4.4 变量的使用
    • 4.5 变量的作用域和生命周期
    • 4.6常量
  • 5.字符串+转义字符+注释
    • 5.1字符串
    • 5.2转义字符

基本了解c语言的各种基础知识,对C语言有一个大概的认识

1.什么是C语言

C语言:计算机编程语言,广泛应用于底层开发

先了解什么是计算机编程语言(计算机语言)
计算机语言:人和计算机进行交流的语言C,C++,Java,Python,go)
上千种计算机语言,C语言是其中之一
初识C语言(作者进阶版)_第1张图片

C语言最早期标准:ANSI C
目前最常用标准:C89,,C90
一门语言有了国际标准才能走得长远
初识C语言(作者进阶版)_第2张图片

编译器主要有Clang(苹果), GCC(Linux), MSVC(VS 2019:集成开发环境), Turbo C。

VS2019-集成开发环境(IDE),集成了很多功能:

  1. *编辑器 *:编辑代码
  2. 编译器
  3. 链接器:同2进行编译运行
  4. *调试器:*按Ctrl+F10 进行调试

2.第一个C语言程序

  1. (不可裸奔)即创建项目(VS2019/VS2022更好)
  2. 创建源文件(放在文件中)
    • .h(header) 头文件
    • c.源文件(一般将代码放在源文件中),
    • 添加新建项时C程序后缀为.c。C++后缀为.cpp
  3. 写代码
//打印hello 
#include //头文件
int main()//所有标点注意为英文
{
 printf("hello\n");
 return 0;
 }
  • int -整型-整数:main函数最终会返回一个整数
  • main后的括号只能是英语的()
  • return 0的整型类型与其上相呼应
  • main :主函数,程序的入口,在C语言中必须有入口(主函数main),有且仅有一个main
  • printf:打印函数。专门用来在屏幕上打印数据,函数是C语言标准库中提供的库函数。(别人提供的,所以要打招呼,用头文件打招呼。)
  • 打招呼:include:包含。下面的的代码包含stdio.h(standard input output标准输入输出)这个头文件
  • scanf输入也需要打招呼。
  • 按键盘上的Ctrl+F5 / Ctrl+Fn+F5执行
  • 按Ctrl+F10从main函数的第一行开始一行行调试
    初识C语言(作者进阶版)_第3张图片

3.数据类型

写代码需解决生活中的问题,这些问题的解决需一些数据,从而进行计算。那么数据在C语言中如何表达呢?
为森么要写代码?为了解决生活中一些重复的问题,提升效率,C语言必须有能力描述我们的生活。
为了更好描述这些问题,C语言中引入了一些数据类型

数据类型 中文名称 sizeof(操作符,计算变量大小) 例子
char 字符数据类型 1 ’t’,‘f’
short 短整型 2 1011111111111111(最长16位)
int 整型 4
long 长整型 4/8
long long 更长的整型 8
float 单精度浮点型 4 2.9(一位小数)
double 双精度浮点型 8 8.88
单位均为字节

小数在C语言中为浮点数
C语言中,sizeof(long)>=int

int main()
{
    printf(“%d\n",sizeof(int));//\n:换行 
    return 0;
 }

%d:打印整数
%c:打印字符

4.2类型的使用

char ch=‘w’;
int a=7777;
float weight=88.8f;
double ijh=2.99;

4.3计量单位(计量存储容器)

  • bit(比特位)
  • 1byte(字节)=8bit
  • 1KB=1024byte
  • 1MB=1024KB
  • 1GB=1024MB
  • 1TB=1024GB
  • 1PB=1024TB
    10110011(8比特位=1字节)
    00 0
    01 1
    10 2
    11 3
    short数字范围:-32768~32767

4.变量,常量

4.1定义变量的方法

类型+变量名=值
变量名不可乱写
int m=0;//给其初始化
int m;;不是好的习惯,好的习惯是在创建变量时给一个初始值
如:double salary=200000.0;
不加f,则编译器默认其为double类型

4.2变量的命名

初识C语言(作者进阶版)_第4张图片

4.3 变量的分类

  • 局部变量:放在大括号内
  • 全局变量:放在{}外部。不在乎放在后还是前
int main()
int a=9
{
int a=2;
printf("%d\n",a);//输出的是2
return 0:
}

局部和全局名字冲突时,局部优先。建议不要冲突

4.4 变量的使用

哪里用哪里创建

//写一个代码,计算两数之和
#include 
int main()
{
 int num1=0;
 int num2=0;
 int sum=0;
 //计算求和
 sum=num1+num2;
 //输入数据
 scanf("%d %d",&num1,&num2);//scanf:库函数,可以从那个键盘接收数据
 //输出结果
 printf("%d\n",sum);
 return 0;
}

&num1:必须要有取地址
在这里插入图片描述

结果出现错误时,要让这个描述失效的话在代码第一行使用==#define _CRT_SECURE_NO_WARNINGS 1解决
scanf是C语言提供的
scanf_s是VS提供的
(只有VS认识这个函数)
与之类似的还有:scanf, strcpy, strcaty这些函数,VS都会提示不安全。为了能够正常使用,我们在此文件第一行加
#define _CRT_SECURE_NO_WARNINGS 1==
我们可在newc++file.cpp这个文件中加入==#define _CRT_SECURE_NO_WARNINGS 1==以达成一劳永逸的目的。

4.5 变量的作用域和生命周期

作用域:程序设计中的一个概念。一般的,一段程序代码中所用到的名字并不总是有效/可用的。而限定这个名字的可用性的代码的范围就是这个名字的作用域。

int main()
{
  {
  int a=9;
  printf("%d\n",a);
  }
  return 0:
}//运行正常,输出9
int main()
{
  {
  int a=9;
  }//代码块:限定局部范围,局部区域。
  printf("%d\n",a);
  return 0;
}//运行错误

初识C语言(作者进阶版)_第5张图片
意思为这里就不可使用a,a只能在{}局部范围内内使用,出了{}用不了->作用域
哪里可以使用,哪里就是它的作用域。

  • 局部变量的作用域是变量所在的局部范围
  • 全局变量的作用域是整个工程
    全局变量:在{}外部定义的变量。
#include 
int g_a=2022;//定义
void test()//和主函数意思相同 4
{
  printf("test:%d\n",g_a);// 5
}
int main ()// 1
{
 printf("%d\n",g_a);// 2
 test();//调用函数3
 return 0;
}

初识C语言(作者进阶版)_第6张图片
代码必须放在函数内部,如printf("%d\n",a) 放在{}内。语法错误。

变量的声明和定义可放在函数外部,如int g_a=2022
程序从main函数开始执行
=初识C语言(作者进阶版)_第7张图片
编译器对代码从上到下顺序扫描只需在第3行加上int g_a;(声明)即可

全局变量的另类用法

共2个文件

初识C语言(作者进阶版)_第8张图片
add.c定义了全局变量
想在test.c中使用此变量
可否跨文件使用? 答案: yes no
初识C语言(作者进阶版)_第9张图片

用extern声明外部符号,接下来的使用没有任何问题,可以使用

初识C语言(作者进阶版)_第10张图片

因此全局变量的作用域是整个工程
生命周期
变量的生命周期指的是变量的创建到变量的销毁的一个时间段。

  • 局部变量的生命周期:进入作用域是生命周期开始,出作用与生命周期结束。
  • 全局变量的生命周期:整个程序的生命周期。
    初识C语言(作者进阶版)_第11张图片

a进入作用于创建,出作用域销毁(出作用域再把四个字节还给系统–回收了)。

4.6常量

  1. 字面常量 如:3,100,‘a’,“abc"
  2. const修饰的常变量 如:const float pai=3.14f pai在const层面上修饰为常量,但本质是变量。
    int arr[10]={0};//此表达
int n=10;
int arr[n]={0};

上述❌,。应输入常量表达式

const int n=10;
int arr[n]={0};

编译器认为n是变量,但从语法上限制了变量,本质上还是变量。

  1. #define定义的的标识符常量 如:
#define MIN 9//一般放在全局范围内
int main()
{
     int arr[MIN]={0};//有无这行代码都可运行。证明MIN是常量
     printf(“min=%d\n”,MIN);
     return 0;
}//输出9

数组:可以存放一组数字。存10个整型。int arr[10] //arr数组名字 //10:能放10个元素 //int:每个元素是整型
大小指定的时候,需要一个常量如10
4. 枚举常量 :一一列举。默认从0开始,以下依次增1

enum Color
  {
   RED,
   GREEN,
   BLUE//三个常量,整型,枚举类型Color的可能取值叫枚举常量
  };//上述为创建的类型,相当于int,float,double.
  int main()//通过类型创建变量
  {
   enum Color c=BLUE;
   printf("%d\n",RED);//0
   //RED=100//❌
    return 0;
   }

学习任何知识时,都需敞开心扉去接纳。爬坡时认为吃力,说明你在进步
声明和定义
int a = 10;//定义创建一个变量,本身也是一种声明
使用局部变量时需赋一个初始值—>初始化
int a;//声明

5.字符串+转义字符+注释

5.1字符串

由双引号引起来的一串字符
结束标志:\0(转义字符)。在计算字符串长度时\0不做字符串内容

char ch=[3]={'a','b','c',};//数组。可以不指定大小,但一定要初始化。{}用来初始化字符

按Ctrl+F10进行调试
由图可知,字符串“abc”中隐藏放了\0,\0作为结束标志,但统计字符的个数不算\0.有4个元素
初识C语言(作者进阶版)_第12张图片
%s:打印字符串

#include 
int main()
{
	char ch1[] = { 'a','b','c' };
	char ch2[] = "abc";
	printf("%s\n",ch1);\\后面没有\0,因此打印随机值
	printf("%s\n",ch2);
	return 0;
}

初识C语言(作者进阶版)_第13张图片
打印字符串打印到==\0==停止

#include
int main()
{
char ch1[]={'a','b','c'};//若要输出,输出结果为\0 ##
char ch2[]="abc";
int len=strlen(ch2)
printf("%d\n",len2);
return 0;
}//输出结果为3,字符串长度不算\0.

C语言提供了一个库函数可以计算字符串的长度strlen(string length)
strlen需要一个头文件

5.2转义字符

初识C语言(作者进阶版)_第14张图片
初识C语言(作者进阶版)_第15张图片

== 转义==:转变原来的意义
初识C语言(作者进阶版)_第16张图片
初识C语言(作者进阶版)_第17张图片
表示八进制用0开头.如088
表示十六进制数字用0x开头。如0x23初识C语言(作者进阶版)_第18张图片\073:一个字符,表示一个分号初识C语言(作者进阶版)_第19张图片

若想输出\t,则需要输入\t
==用\打败==
小练习

#include 
int main()
{
	printf("%d\n", strlen("abcdef"));//6
	printf("%d\n", strlen("c:\test\628\test.c"));//14
return 0;
}

转义字符本来就是字符,只不过有特殊意义,算一个字符。
特殊的转移字符:\0。 ASC II值:0

初识C语言(作者进阶版)_第20张图片

你可能感兴趣的:(c语言,学习)