美文网首页
C基础(1)

C基础(1)

作者: 泡芙coder | 来源:发表于2021-09-15 11:26 被阅读0次

程序运行过程如下:

预处理, 展开头文件/宏替换/去掉注释/条件编译 (test.i main .i)

编译,    检查语法,生成汇编                                  ( test.s  main .s)

汇编,  汇编代码转换机器码                                       (test.o main.o)

链接    链接到一起生成可执行程序                               a.out

1、由.c文件到.i文件,这个过程叫预处理。

2、由.i文件到.s文件,这个过程叫编译。

3、由.s文件到.o文件,这个过程叫汇编。

4、由.o文件到可执行文件,这个过程叫链接。

1. 限定符

extern 声明一个变量表明该变量已经被别处定义,在此处引用,不开辟空间。

static 静态修饰,static修饰的变量无法被外链调用,即不可被extern 声明,作用域只在本文件。

const 修饰的变量不能修改。

volatile 防止编译器优化。

2. 数组

一维数组数组名:

int a[5];

数组名a代表数组,也是数组第一个元素的地址,所以说数组名是一个常量(不可赋值)。

&a 整个数组的地址。

&a、a、&a[0]在数值上是相等的。

&a+1 跨度是5个元素,a+1跨度是一个元素。

二维数组数组名:

int a[2][3];

a代表整个数组,也代表数组第一行元素的地址。a+1跨度是3个元素

&a代表整个数组的地址 &a+1跨度是6个元素

a[0]代表第0行一维数组的数组名。

3. strlen和sizeof的区别

strlen可以测量字符串的有效字符个数,sizeof得到的结果是占有的内存大小。

4.防止头文件重复包含

#ifndef

#define

#endif

5.指针

野指针:指向非法空间的指针,比如没有初始化的指针,或者指针指向被释放的内存。

万能指针 void* 可以保存任意的地址。

数组指针 int (*p)[4],也称为行指针。

指针数组 int **k,或者 int *num[3];

指针作为函数形参,可以改变实参的值。

数组作为函数的形参,会退化为指针。

指针作为函数返回值不能返回普通局部变量的地址,因为局部变量在函数结束之后会被释放。

字符数组和字符指针和字符常量的区别:

char a[] = "hello"; //存放在栈区

char *p = a;

p = "hello"; //字符串常量存在文字常量区不可改变

字符串处理函数(库函数了解)

6.内存管理

内存分为五个区域:

代码区、堆区、栈区、静态全局区,文字常量区。

malloc和free成对使用。

内存泄漏:内存申请没有释放,导致内存泄露。

操作内存的一些函数:。。。。。

7.复合类型

结构体共用体

结构体的内存对齐。

8.标准文件

一些文件操作的函数。

相关文章

  • 《大学专业生涯 计划书单》

    1、基础中的基础 →C++ 《C++Primer》 《EffectiveC++》 《Inside the C++ ...

  • C:基础(1)

    起源与概括 1973年,为了Unix系统,贝尔实验室发明。标准化两个:C89(也就是ISO C90)和C99。C语...

  • C基础(1)

    程序运行过程如下: 预处理, 展开头文件/宏替换/去掉注释/条件编译 (...

  • Objective-C学习笔记

    基于Objective-C基础教程:1天玩转Objective-C语法【C基础】#if、if、#ifdef、#if...

  • C/C++基础(1)

    C: 基本数据类型: char(1)、short(2)、int(4)、float(4)、long(8)、doubl...

  • C/C++基础(1)

    1、基本数据类型 ong int 其实就是长整型 = long 可以省去int 在标准中,规定 int至少和sho...

  • 1.c++基础(1)

    2.变量和基本类型 3.字符串、向量和数组 4.表达式 5.语句 2.变量和基本类型 c++的算术类型: 一个ch...

  • C语言基础_1

    一C程序框架 学习一门语言,个人认为是先从一个最基本的框架开始,然后再慢慢的拓展开来,那首先就来看C语言程序的基...

  • C语言基础(1)

  • C 语言基础(1)

    main 函数是程序入口,一个程序只能有一个main()函数,需要有返回值。 #include是预处理指令,用于包...

网友评论

      本文标题:C基础(1)

      本文链接:https://www.haomeiwen.com/subject/iskwwltx.html