![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言基础
文章平均质量分 77
hello_shaonian
这个作者很懒,什么都没留下…
展开
-
总结c语言的操作符
在c语言中,操作符分为算数操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符和逗号表达式。下面就是关于操作符大概的总结。一,算数操作符:加+,减-,乘*,除/,取模%。1.+ - *:用于整数和浮点数。 2./:对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。3.% :%操作符的两个操作数...原创 2018-04-05 11:17:08 · 165 阅读 · 0 评论 -
常用数据类型对应字节数
常用数据类型对应字节数 :可用如sizeof(char),sizeof(char*)等得出 32位编译器: char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节 int: 4个字节 ...原创 2018-08-16 09:53:19 · 1656 阅读 · 0 评论 -
stdio.h
编译时<stdio.h>是编译软件按系统规定的标准方式检索文件目录;"stdio.h"则是先在源程序文件所在文件目录搜索需包含的文件,没找到再按系统规定的标准方式检索文件目录,可见当所需文件不在源文件所属文件夹时后者慢一些...原创 2018-08-12 10:21:52 · 1855 阅读 · 0 评论 -
标准c库中的读写表示
r 只读 为输入打开一个文本文件(文件必须存在)w 只写 为输出打开一个文本文件(如没有文件,则新建)a 追加 向文本文件尾添加数据(如没有文件,则新建)rb 只读 为输入打开一个二进制文件wb 只写 为输出打开一个二进制文件ab 追加 向二进制文件尾添加数据r+ 读写 为读写打开一个文本文件(文件必须已经存在)w+ 读写 为读写建立一个新的文本文件a+ 读写 为读写打开一个文...原创 2018-08-12 10:14:45 · 118 阅读 · 0 评论 -
指针与数组的总结
关于数组与指针的导图:关于数组与指针详细的总结:https://blog.csdn.net/snowyuuu/article/details/80395161(高级指针1) https://blog.csdn.net/snowyuuu/article/details/80424370(高级指针2)函数指针调用的函...原创 2018-05-24 20:07:02 · 374 阅读 · 0 评论 -
自定义类型
【结构体】 结构体是将具有不同或者相同元素类型放在一起的聚合类型。一,结构体类型的声明struct tag//struct是关键字,tag是标签,要见名知意。这里tag可省略,但不建议省略。{member_list;//声明一种类型,在c语言中,这里不能为空。}variable_list;//结构体变量列表,变量可以有多个。这里建议省略,需要用的时候再定义。注意{};,后面的分号...原创 2018-05-29 12:53:58 · 307 阅读 · 0 评论 -
高级指针2
前面已经学习了关于指针与数组的一些概念,现在我们继续对它们进行了解,学习指针和数组的定义与声明,还有具体是怎么传参的呢?【指针与数组的定义,声明】 通俗易懂的来说,定义是不存在的时候要它存在,而声明是不知道的是让它知道。 定义和声明之间的差别就是 定义分配了内存而声明没有;定义只能出现一次,而声明可以出现多次。1.定义为数组,声明为指针定义://test.cchar arr[]...原创 2018-05-23 23:13:01 · 147 阅读 · 0 评论 -
qsort函数
介绍qsort函数之前,我们先了解一下什么是回调函数??回调函数就是⼀个通过函数指针调⽤的函数。如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现⽅直接调⽤,⽽是在特定的事件或条件发⽣时由另外的⼀⽅调⽤的,⽤于对该事件或条件进⾏响应。qsort函数就是根据回调函数实现的。接下来介绍一下qsort函数:1.编...原创 2018-05-22 22:39:34 · 843 阅读 · 0 评论 -
高级指针1
在之前学习数组的时候接触过指针,我们可以了解到指针和数组之间并没有关系,看前面的文章回顾一下:https://blog.csdn.net/snowyuuu/article/details/79999829那么到底什么是指针数组 ,数组指针 ,函数指针, 函数指针数组, 指向函数指针数组的指针呢?接下来我们就深入的学习下指针。【指针数组】一.定义:简单来说就是存放指针的数组。首先它是一个数组,数...原创 2018-05-21 17:42:15 · 207 阅读 · 0 评论 -
可变参数列表解析
什么是可变参数呢?我们查看printf的函数原型: int print(const char *format, ...) 第一个确定参数后面的参数...就叫做可变参数。c语言中,通过将函中为可变参数的形式,可以使函数可以接受一个以上的任意多个参数。原理:可变参数列表实际上是宏的使用,实质是栈帧结构的运用;我们通过栈帧了解到形参实例化是从右向左执行,所以我们可以通过定义一个指针变量(p),强制转化之...原创 2018-05-13 17:53:32 · 185 阅读 · 0 评论 -
模拟实现memcpy和memmove
1.模拟实现memcpy(按字节的内存拷贝,无关类型) 原型:extern void *memcpy(void *dest, void *src, unsigned int count); 用法:#include <string.h> 功能:由src所指内存区域复制count个字节到dest所指内存区域。 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。...原创 2018-05-19 23:00:28 · 173 阅读 · 0 评论 -
数据在内存中的储存
一,数据类型的介绍1.基本的内置类型:分为signed, unsigned(默认有符号数)char:字符数据类型(1byte),有符号数的大小范围是-128~127,无符号数是0~255.short:短整型(2byte),有符号数的大小范围是-2^15~2^15-1,无符号数是0~2^16-1.int:整形(4byte),有符号数的大小范围是-2^31~2^31-1,无...原创 2018-05-06 15:55:10 · 282 阅读 · 0 评论 -
函数的调用过程
所有抽象数据类型(ADT)都必须明确一件事——如何获取内存来存储值。内存分配方式有三种:一是从静态存储区域分配(全局变量,static变量);二是在栈上创建(局部变量,自动变量);三是从堆上分配(动态内存分配,用malloc或者new申请多大内存,用free或者delete释放内存)。下面来看一个图理解c程序的内存分配:从低地址到高地址分别为代码区,文字常量区,已初始化全局数据区,未初始化全局...原创 2018-05-10 17:03:56 · 335 阅读 · 0 评论 -
数组的练习
Sizeof与Strlen的区别:1.sizeof是运算符,strlen是函数。 2.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小;sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。strlen的结果要在运行的时候才能计算出来,时用来计算字符串的...原创 2018-04-20 13:50:12 · 190 阅读 · 0 评论 -
C中的数组
一,一维数组1.一维数组的含义:是一组相同类型元素的集合,定义数组时必须指定其元素的类型和个数。其大小与元素的类型和个数有关。数组可以存任何类型的数据,但不能存函数。2.创建:type_t arr_name [const_n];//type_t是数组的元素类型;const_n是常量,用来指定数组的大小;注意:[ ]里要给一个常量,整形常量大于0,不能使用变量。在c语言中const 修饰的常...原创 2018-04-19 09:59:52 · 418 阅读 · 0 评论