随笔分类 - C语言基础
1
摘要:上一节, 我们讲解了static和extern对于函数的作用, 这次我们来讲解static和extern对于变量的作用.首先, 我们来看一个例子:输出的结果:有人会疑问, 为什么我在main.c文件里面定义的全局变量会和在one.c文件里面的全局变量的输出结果和地址是完全一样的呢?其实原因很简单, ...
阅读全文
摘要:前言在前面, 我们讲过局部变量和全局变量, 那么在函数里面, 有没有类似这样子的定义呢? 其实是有的, 函数在这里分为外部函数和内部函数, 分别用两个关键字来声明, 下面我们一起来看看吧~~开始首先我们来看看一个例子:我创建了两个文件, 一个用来存放main函数, 一个用来存放其他函数, 关于mai...
阅读全文
摘要:上一节我们简单的介绍了一下typedef的基本认识, 这次我们来讲解一下它与宏定义的一些对比~~有研究的朋友肯定会发现, 使用宏定义一样可以达到类似typedef的效果, 比如:#include #define String char *int main(){ String s; ...
阅读全文
摘要:前言在我们学习开发中, 有很多类型都是系统自带的, 比如int, double, long, 指针类型, 如果, 你是系统自带类型恐惧症患者, 那么typedef就可以帮到你了, 请仔细看下面的内容.开始首先让我们来看一个例子:#include typedef int MyInt;int main(...
阅读全文
摘要:上一节课, 我们讲解了条件编译的一些知识, 这次我们来讲解一下怎么运用宏定义来进行多文件编译.现在来让我们看一个例子:输出的结果:PS: 1.运用多个文件编译的时候, 一定要把所有的.c文件一起编译, 否则编译器会报错. 2.引用头文件是可以多次引用的, 虽然编译器不会报错, 但会为编译器增加一...
阅读全文
摘要:上一节我们讲解了带参数和不带参数的宏定义, 这次我们来讲解条件编译, 什么是条件编译呢? 我们来看看吧下面我们来看看例子:#include int main(){ int a = 10; if (a == 10) { printf("a是10\n"); ...
阅读全文
摘要:上一节课, 我们讲解了不带参数的宏定义, 这节课我们就来讲讲带参数的宏定义又是怎么定义, 使用和注意事项~~下面我们来看一个例子:#include #define kSum(a, b) a+bint main(){ int a = 10; int b = 20; i...
阅读全文
摘要:一、基本数据类型1.int1> long int == long:8个字节 %ld 或者 %li2> short int == short:2个字节 %d 或者 %i3> unsigned int == unsigned:4个字节 %zd 或者 %zi4> signed int == signed...
阅读全文
摘要:前言前段时间我们讲完了指针和结构体, 这次我们来讲枚举类型, 什么是枚举呢? 打个比方, 比如我们一个星期有七天, 从周一到周日, 这是固定不变, 不可能无端端的跳出一个星期八出来, 在这种固定的情况下, 我们如果要写一个程序去固定这七天, 并且不让别人乱修改, 为了满足这个需求, 枚举就诞生啦.开...
阅读全文
摘要:上一节, 我们讲解了结构体与函数, 这次我们来讲解一下结构体的嵌套使用.比如有一个学生, 我需要知道他的学号, 生日年月日, 入学年月日, 如果用结构体我们需要怎么做呢?按照常规的定义, 就像下面的例子:#include int main(){ struct Date { ...
阅读全文
摘要:上一节课, 我们讲解了指向结构体的指针, 这次我们来讲讲, 结构体与函数~~下面我们来看一个小例子:#include struct Student{ int age; char *name;};void test(struct Student s){ s.age = 30; ...
阅读全文
摘要:上一节, 我们讲解了结构体数组, 这次我们来讲解指向结构体的指针, 之前我说过, 只要有地址, 指针就能指向它, 那么下面我们来看看结构体的指针吧~~~下面我们来看一个例子:#include int main(){ struct Student { int age; ...
阅读全文
摘要:上一节, 我们讲解了一下结构体的定义方式, 作用域, 以及注意事项, 这次我们来讲解结构体数组.有些人疑问, 结构体也有数组啊? 这是肯定的, 其实结构体数组非常常用, 下面我们来看一个需求示意图:按照上图所示, 如果我们要求这样子输出, 我们就要有几个不同类型的数组才能完成, 但如果有了结构体, ...
阅读全文
摘要:前面我们讲解了结构体在内存中是如何存储的, 这次我们来讲解一下结构体定义的一些基本认识.下面我们看一个例子:#include int main(){ struct Student stu { int age; //年龄 double height; /...
阅读全文
摘要:上一节, 我们简单的介绍了结构体的一些知识点, 以及一些注意的事项, 这次我们来看看结构体是怎么样在内存存储的~我们来看一个小例子:#include int main(){ struct Date { int year; double dou; ...
阅读全文
摘要:前言在C语言里面, 我们如果需要定义多个类型的东西, 可以使用数组定义, 但数组有局限性, 一个数组只能存储多个同一种类型的数据, 并不能同时存储不同类型的数据, 由此需求, 所以结构体诞生了.开始下面让我们来看一个小例子:#include int main(){ // 1.定义结构体类型 ...
阅读全文
摘要:前言何为变量? 在我们之前学到的知识里面, 定义过很多变量, 比如int 变量, double变量, long变量, 这些都是属于变量, 这次我们所说的知识是在这些变量的基础上再添加一些知识, 那就是全局变量以及局部变量.开始我们来看一个小例子:#include int a;void test(){...
阅读全文
摘要:前几节, 我们讲了指针对于数组, 字符串, 还有一些补充的知识, 现在我们来讲指针的最后一个应用, 那就是函数指针.下面我们来看一个小例子:#include char *test();int main(){ char *name = test(); printf("name=%s...
阅读全文
摘要:上一节我们讲到了指针和数组, 这次我们来讲解一下指针和字符串, 这次的内容和上一节有相似的地方, 也有全新学习的地方, 让我们一起来看看吧~~下面我们来看一个小例子:#include int main(){ char name[] = "abcde"; name[0] = 'A'...
阅读全文
摘要:上一节, 我们补充了一点关于指针的小知识, 这次我们来讲讲指针和数组:首先, 我们来看一个小例子:#include int main(){ int ages[5] = {10, 20, 30, 40 ,50}; int *p; p = &ages[0]; ...
阅读全文
1