1. 快速入门C语言

(1) 环境安装 & 运行第一个C

重点 自己百度安装、自己百度跑第一个程序

  • g++
  • vs code
    • 插件 C/C++
    • 插件 code runner

(2) 程序组成

程序的组成是学习很多语言都必须了解的,了解之后会让你快速的建立一个整体的概念。在写C程序的时候,我们也会遵循这个组成规则

  • 预处理器指令
  • 变量
  • 表达式
    表达式包含:运算符 / 循环判断 / 数据结构 等…
  • 函数
    函数也是一个指令集,下面会从 结构、定义、使用三个方面说明
  • 注释
    不会被编译的文本。
    通常格式是 : ///**/
/*
 * 这是一段注释
 */
#include <stdio.h> // 预处理指令
int main() // 函数
{
	// 下面三行通称表达式
	int a = 0; // 变量
	printf("a is %d \n", a);
	return 0;
}

(3) 数据类型 & 变量

C的数据类型被分为四类,分别是 基本数据类型、浮点类型、void类型、派生类型。

那什么是数据类型嘞?为什么要数据格式嘞?

那这个问题太深奥了,我觉得可以从好多个点去结合回答这个问题,可以从计算机最小组成单位 以及 字节 反码 补码 原码 cpu底层加减乘除的实现逻辑等方面去回答,其实最终目的就是为了方便对数据进行管理、访问、维护、 运算。这里暂时不展开,后面有时间再说吧。

单位说明 : 1byte = 8位
基本数据类型 和 浮点数据 忘记可以查表不用死记,一般用int

1. 基本数据类型

类型存储大小范围
char1byte0 - 255 或 -128 - 127
unsigned char1byte0-255
signed char1byte-128 - 127
int2byte 或 4byte-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int2byte 或 4byte0 到 65,535 或 0 到 4,294,967,295
short2byte
unsigned short2byte
long4byte
unsigned long4byte

2. 浮点类型

类型存储大小范围精度
flaot4byte1.2E-38 到 3.4E+381.2E-38 到 3.4E+386位小数点
double8byte2.3E-308 到 1.7E+30815位小数点
flaot double10byte2.3E-308 到 1.7E+30819位小数点

3. void类型

4. 派生类型

指针类型、数组类型、结构类型、共用体类型和函数类型。后面都会介绍定义和使用。

(4) 运算符 & 变量

1. 变量

变量就是数据的别名,比如:y = 8,其中y就称为便变量。

  • 声明
    变量的定义语法:type variable_list;
    type 就是数据类型了,上面有表格,variable_list称为变量名。
  • 变量名格式
    1. 除了 关键字 数字 特殊字符 之外,都能作为变量的第一个字符。
    2. 第二个字符开始 特殊字符 除外
    3. 关键字就是程序已经定义好的命名,比如:int float double
    4. 特殊字符就是 %$# 等等。。

反正,用字母作为变量名就啥事都没有了

#include <stdio.h>
void main()
{
	int    i, j, k;
	char   c;
	float  salary;
	double d;
}

2. 算术运算符

算术运算符就是加减乘除求余,配合

名称符号
加法+
减法-
加法*
除法/
求余%
自增++
自减
#include <stdio.h>
void main()
{
	int a = 0, b = 10, c = 2;
	printf("减法: %d\n", c - b);
	printf("加法: %d\n", c + a);
	printf("除法: %d\n", c / b);
	printf("乘法: %d\n", c * b);
	printf("求余: %d\n", b % c);
	// 注意:(++b / b++) (--b / b--) 结果相同,但是细节有区别,自己去研究一下
	printf("自增: %d\n", ++b);
	printf("自减: %d\n", --b);
}

3. 关系运算符

六种关系运算符,分别是 等于、不等于、小于或等于、大于或等于、大于、小于,== != <= >= > <

下面做个例子,不理解的同学认真看。

一句话非零即真,真就会进入if的语句中执行。

#include <stdio.h>

void main() 
{
	// 运算符结果输出
	int a = 0, b = 1;
	printf("== 输出结果:%d\n", a == b);
	printf("!= 输出结果:%d\n", a != b);
	
	// 配合判断if
	if ( a == b ) 
	{
	  printf("a 等于 b\n");
	}
	
	// 在 if 使用0,1作为条件
	
	if ( 1 ) 
	{
	  printf("条件1 进入了if语句中\n");
	}
	
	if ( 0 )
	{
	  printf("条件0 进入了if语句中\n");
	} else 
	{
	  printf("条件0 没进入if语句中");
	}
}

在这里插入图片描述

4. 逻辑运算符

三种逻辑运算符,与或非 && || !

&& : 只有全部都是 真时,返回真。 这里的真对应 大于零
||:有一个真,返回真。
!:!真 = 假,!假 = 真。这里的假是0。

例子好好看,好好思考。

#include <stdio.h>

void main() 
{
  // 与
  printf("(0 && 0 && 1) = %d\n", 0 && 0 && 1);
  printf("(1 && 1 && 1) = %d\n", 1 && 1 && 1);

  printf("----------------------------------\n");
  // 或
  printf("(0 || 0 || 1) = %d\n", 0 || 0 || 1);
  printf("(0 || 0 || 0) = %d\n", 0 || 0 || 0);
  printf("(1 || 1 || 1) = %d\n", 1 || 1 || 1);

  printf("----------------------------------\n");
  // 非
  printf("!0 = %d \n", !0);
  printf("!1 = %d\n", !1);

}

5. 位运算

位运算比较高级,了解即可。与、或、异或、取反、左移、右移动,对应符号 & | ~ ^ << >>

  • 简单例子
#include <stdio.h>
int main()
{
   unsigned int a = 60; /* 60 = 0011 1100 */  
   unsigned int b = 13; /* 13 = 0000 1101 */
   int c = 0;      
        
   c = a & b;       /* 12 = 0000 1100 */ 
   printf("Line 1 - c 的值是 %d\n", c );

   c = a | b;       /* 61 = 0011 1101 */
   printf("Line 2 - c 的值是 %d\n", c );

   c = a ^ b;       /* 49 = 0011 0001 */
   printf("Line 3 - c 的值是 %d\n", c );

   c = ~a;          /*-61 = 1100 0011 */
   printf("Line 4 - c 的值是 %d\n", c );

   c = a << 2;     /* 240 = 1111 0000 */
   printf("Line 5 - c 的值是 %d\n", c );

   c = a >> 2;     /* 15 = 0000 1111 */
   printf("Line 6 - c 的值是 %d\n", c );
}
  • 实现加法
#include <stdio.h>

void main() 
{
  int a = 121, b = 100;
  while (b)
  {
    int c = a ^ b;
    int d = (a & b) << 1;
    a = c;
    b = d;
  }
  printf("nums is %d", a);
}

6. C特有的运算符

下面的后面继续完善,最近课多事多。

(5) 判断 & 循环

(6) 数据结构

1. 数组

(7) 函数

(8) 存储类

(9) 指针

(10) 字符串

(11) 文件和文件之间的沟通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值