C语言零基础

1. 入门了解

学习C,需要使用到文本编译工具以及C源码编译工具,这里简单理解为记事本(notepad)和环境(jdk)
通过编辑器创建的文件通常称为源文件,源文件包含程序源代码
C 程序的源文件通常使用扩展名 .c
Linux系统通常使用的是vim/vi与GCC
Windows系统用的是notepad(记事本)与GCC,但是 为了想要在Win上安装GCC,首先得安装MinGW

2. 编程环境搭建

2.1 下载及安装MinGW

点击进入 MinGW 官网(打不开),下载最新版本的 MinGW 安装程序,默认命名格式为 MinGW-.exe

安装 MinGW 时,勾选四项: gcc-core、gcc-g++、binutils 和 MinGW runtime
然后点击‘installation’–>‘apply changes’–>‘apply’,等待一会
可以参考C语言环境下载及安装(建议选择里面的Git下载,整合了现成的MinGW和gcc工具进去)

MinGW 的 bin 目录路径(C:\MinGW\bin)拷到您的path环境变量中,操作方法与Java环境变量配置相同
可以参考java超简单的环境变量 配置+详解
校验环境:打开cmd,输入gcc -v

2.2 程序结构对比

C HelloWorld 实例
C 程序主要包括以下部分:

预处理器指令
函数
变量
语句 & 表达式
注释

源码

//预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件
#include <stdio.h>
//主函数main(),程序从这里开始执行
int main(){
  //输出HelloWorld!并换行
   printf("Hello World! \n");
   //终止主函数,并返回值 0
   return 0;
}

Java程序结构

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念

对象:对象是类的一个实例,有状态和行为。例如,一个人或一条狗是一个对象,它的状态有:名字、性别;行为有:吃、喝、睡等
类:类是一个模板,它描述一类对象的行为和状态
方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的
实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定

源码

//位置在a包里
//package a;
//创建公有类 HelloWorld
public class HelloWorld {
    //执行入口函数
    public static void main(String[] args) {
    	//输出
        System.out.println("Hello World!"); 
    }
}

2.3 编译与执行

把源代码保存在一个文件中,以及编译并运行它

打开一个文本编辑器(notepad),添加上述C代码
保存文件为test.c
打开命令提示符(cmd),进入到保存文件所在的目录
输入gcc test.c,输入回车,会编译代码
如果代码中没有错误,命令提示符会跳到下一行,并生成a.exe可执行文件
现在,输入a.exe 来执行程序(注:可能官方文档说的是a.out,关键是它默认生成的就是a.exe,有需要的话可以编译的时候输入gcc test.c -o a.out,这样在执行的时候输入a.out才行)
可以看到窗口输出了 "Hello World!"

注:如果是多个 c 代码的源码文件,编译方法如下:
编译代码gcc a.c b.c -o c.out
执行程序c.out(官方说明是./c.out,实际上我直接输c.out)
a.c 与 b.c 是两个源代码文件

找不到自己放在桌面的test.c时,请参考本文:cmd如何进入桌面在这里插入图片描述

3. 基础学习

3.1 基本语法

自行了解

3.2 数据类型

C语言中,数据类型指的是用于声明不同类型的变量或函数一个广泛的系统变量的类型决定了变量存储时占用的空间,以及如何解释存储的位模式
和Java有些类似,但C中的各种类型的存储大小与系统位数有关,目前通用的以64位系统为主

3.2.1 基本数据类型

常用基本数据类型占用空间(64位机器为例)
char : 1个字节
int :4个字节
float:4个字节
double:8个字节
基本类型书写
整数
a,默认为10进制,10 ,20。
b,以0开头为8进制,045,021。
c.,以0b开头为2进制,0b11101101。
d,以0x开头为16进制,0x21458adf。 小数
单精度常量:2.3f 。
双精度常量:2.3,默认为双精度。
字符型常量
用英文单引号括起来,只保存一个字符’a’、‘b’ 、’*’ ,还有转义字符 ‘\n’ 、’\t’。
字符串常量
用英文的双引号引起来 可以保存多个字符:“abc”。

(表格内的可以了解)

序号类型描述
1基本类型它们是算术类型,包括两种类型:整数类型浮点类型
2枚举类型它们也是算术类型,枚举被用来定义在程序中只能赋予其一定的离散整数值的变量。
3void 类型类型说明符 void 表明没有可用的值。
4派生类型它们包括:指针类型数组类型结构类型共用体类型函数类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.2 数据类型转换

1、数据类型转换:
C 语言中如果一个表达式中含有不同类型的常量和变量,在计算时,会将它们自动转换为同一种类型;在 C语言中也可以对数据类型进行强制转换;
2、自动转换规则:
a)浮点数赋给整型,该浮点数小数被舍去;
b)整数赋给浮点型,数值不变,但是被存储到相应的浮点型变量中;
3、强制类型转换形式:
(类型说明符)(表达式)

实例程序:

#include<stdio.h>
 int main() {
     float f,x=3.6,y=5.2;
     int i=4,a,b;
     a=x+y;
     b=(int)(x+y);
     f=10/i;
     printf("a=%d,b=%d,f=%f,x=%f\n",a,b,f,x); }

例中先计算 x+y 值为 8.8,然后赋值给 a,因为a为整型,所以自取整数部分8,a=8;

接下来 b 把 x+y 强制转换为整型;

最后 10/i 是两个整数相除,结果仍为整数 2,把 2 赋给浮点数 f;

x 为浮点型直接输出。

3.3 变量&常量

(暂无)

3.4 存储类&运算符

(暂无)

3.5 判断

(暂无)

3.6 循环

(暂无)

3.7 函数

(暂无)

3.8 作用域

(暂无)

3.9 数组

(暂无)

3.10 enum(枚举)

(暂无)

3.11 指针

(暂无)

3.12 函数指针与回调函数

(暂无)

3.13 字符串

(暂无)

3.14 结构体&共用体

(暂无)

3.15 位域

(暂无)

3.16 typedef

(暂无)

3.17 输入&输出

(暂无)

3.18 文件读写

(暂无)

3.19 预处理器

(暂无)

3.20 头文件

(暂无)

3.21 强制类型转换

(暂无)

3.22 错误处理

(暂无)

3.23 递归

(暂无)

3.24 可变参数

(暂无)

3.25 内存管理

(暂无)

3.26 命令行参数

(暂无)

3.27 排序算法

(暂无)

4. 小实例

(暂无)

5.C 标准库参考手册

序号C 标准库
1<assert.h>
2<ctype.h>
3<errno.h>
4<float.h>
5<limits.h>
6<locale.h>
7<math.h>
8<setjmp.h>
9<signal.h>
10<stdarg.h>
11<stddef.h>
12<stdio.h>
13<stdlib.h>
14<string.h>
15<time.h>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值