C语言速成

在这里插入图片描述

C语言生成可执行文件过程

编译器gcc

1、预处理过程(头文件的包涵,去掉注释,宏展开)—#include 预处理过程不做语法检查
命令:gcc -E helloworld.c -o helloworld.i
2、 编译:编译过程做语法检查 生成汇编语言
命令:gcc -S helloworld.i -o helloworld.s
3、汇编:将汇编语言生成对应的二进制数据
命令:gcc -c helloworld.s -o helloworld.o
4、链接:添加对应操作系统可以执行的链接,生成可执行文件
命令:gcc helloworld.o -o helloworld

编译过程

在这里插入图片描述

连接过程

由链接器将可执行文件连接形成一个单一而完整的可执行程序。(同时会引入用到的库函数)
在这里插入图片描述

整数

在这里插入图片描述

main函数

在这里插入图片描述

在这里插入图片描述

预编译

在这里插入图片描述

#include文件包含:(即java得import)

在这里插入图片描述

数据类型

在这里插入图片描述

常量

在这里插入图片描述

运算符

在这里插入图片描述

指针

只记:

  1. 指针就是地址
  2. &变量名 就是指针(地址)
  3. *指针 就是指针指向的变量
  4. 运算优先级:=& > * > =* 只优先于 = !!)

指针的声明

p 是指针,就是变量的地址
p 等于 &变量名 (&变量名 返p回的就是变量的地址)

int *p 返回p地址中存的变量值(指针指向的变量的值)

int *p=&变量名  =====> *(p=&变量名)

声明一个指针:

int    *ip;    // ip是一个整型的指针
double *dp;    // dp是一个 double 型的指针
float  *fp;    // fp是一个浮点型的指针
char   *ch;    // ch是一个字符型的指针

在这里插入图片描述

移动指针

int *p = 7;
int *p++  ===> int *(p++):就是指针移动到下一个对应的变量(并不是指针这个地址数+1)
比如int类型的指针:*p返回7,*p++是先将指针p移动2个字节指向下一个int变量的地址再*号返回7后面的int值(一个int类型变量是2个字节)

(*p)++:指将指针对应的变量值+1!!!

二级指针

指针p 指向一个变量值7 ===> 指针q 指向的变量 是指针p ===> 指针q就是一个二级指针

int x = 7;

因为指针(地址)p = &x;
所以 int *p = &x;

一个指针:q
让q指针指向p指针:*q = p;
则:int *(*q = p); =======> int **q = p;

所以: 
	x、*p、**q 返回 7 !
	p、*q 是7的地址 !

三名主义

在这里插入图片描述

数组

一维数组

在这里插入图片描述

一维数组遍历

在这里插入图片描述

二维数组

在这里插入图片描述

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值