
c语言学习
文章平均质量分 74
流光一逝&&
菜鸡为入门程序员
展开
-
linux文件
内容超多如文件系统原理及访问机制文件在内核中的管理机制什么是文件信息节点inode文件的共享文件权限,各种用户对其权限不建议太吃力windows如何手动修改文档**1.打开/创建文档2.编辑文档3.保存文档4.关闭文档**实现文件创建,打开,编辑等自动化执行操作系统提供了一系列的API 如linux系统打开 open读写 write/read光标定位 lseek关闭 close使用open的头文件#include<sys/types.h原创 2021-11-29 17:30:41 · 555 阅读 · 0 评论 -
BIT-0程序环境和预编译 c语言预处理
1.程序的翻译环境2.程序的执行环境3.c语言程序的编译+链接4.预定义符号介绍5.预处理指令#define6.宏和函数的对比7.预处理操作符#和##的介绍8.命令定义9.预处理指令#include10.预处理指令#undef11.条件编译程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境,第一种是翻译环境,在这个环境中源代码被转换为可执行的机器指令,第二种是执行环境它用于实际执行代码详解编译+链接翻译环境程序的编译过程1.组成一个程序的每个源文原创 2021-11-04 16:59:09 · 637 阅读 · 0 评论 -
c语言文件操作
1.什么是文件2.文件名3.文件类型4.文件缓冲区5.文件指针6.文件的打开和关闭7.文件的顺序读写8.文件的随机读写9.文件结束的判定什么是文件磁盘上的文件是文件但是在程序设计中,我们一般谈的文件有两种:程序文件,数据文件程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(window环境后缀为.exe)数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出n内容的文件这次讨论的是数原创 2021-11-01 11:07:26 · 390 阅读 · 1 评论 -
动态分配内存深入理解
动态内存函数的介绍mallocfreecallocrealloc为什么存在动态内存分配呢 int val = 20; 在栈空间上开辟四个字节 char arr[10] ={0}; 在栈空间上开辟10个字节的连续空间 但是上述的开辟空间的方式有两个特点: 1.空间开辟大小是固定的。 2.数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况,有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不原创 2021-10-29 14:41:01 · 471 阅读 · 0 评论 -
结构体,枚举,联合体
内置类型-c语言自己的数据类型charlongshortintfloatdouble复杂对象,复杂类型,自定义类型: 结构体,枚举,联合体结构体结构体类型的声明结构体的自引用结构体变量的定义和初始化结构体内存对齐结构体传参结构体实现位段(位段的填充&可移植性)枚举枚举类型的定义枚举的优点枚举的使用联合联合类型的定义联合的特点联合大小的计算结构体结构体的声明结构的基础知识:结构是一些值的集合,这些值称位成员变量,结构的.原创 2021-10-23 23:43:14 · 193 阅读 · 0 评论 -
字符函数和字符串函数的使用
字符函数和字符串函数的使用求字符串长度 strlen长度不受限制的字符串函数 strcpy strcat strcmp长度受限制的字符串函数介绍strncpy strncat strncmp字符串查找 strstr strtok错误信息报告 strerror内存操作函数memcpy memmove memset memcmpc语言中对字符和字符串的处理很是频繁,但是c语言本身是没有字符串类型的字符串通常放在常量字符串中,或者字符数组中,字符串常量,适用于那些对它不做修改的字符串函数.原创 2021-10-21 22:34:39 · 520 阅读 · 0 评论 -
常见面试题 库函数strcat strncat 简单算法题
下面代码运行结果是什么int main(){ unsigned long pulArray[] = { 6, 7, 8, 9, 10 }; unsigned long *pulPtr; pulPtr = pulArray; *(pulPtr + 3) += 3; /* 6 7 8 9 10 这里的*(pulPtr+3)拿到9这块空间,然后将他加上3改成12 */ printf("%d,%d", *pulPtr, *(pulPtr + 3)); //这里的*pulPtr,是6, *.原创 2021-10-19 10:27:50 · 180 阅读 · 0 评论 -
指针和数组面试题解析
数组名是首元素的地址,但是有两个例外1.sizeof(首组名) - 数组名表示整个数组2.&数组名 - 数组名表示整个数组除了这两个之外,其他都是表示首元素的地址一维数组整型数组```cint main(){ int a[] = { 1, 2, 3, 4 }; printf("%d\n",sizeof(a));//16 //sizeof(数组名) -计算的是数组总大小,单位是字节 4*4 = 16 printf("%d\n",sizeof(a+0));//4 //原创 2021-10-18 11:08:54 · 163 阅读 · 0 评论 -
指针进阶复习, 回调函数使用实例
指针进阶复习int Add(int x, int y){ return x + y;}int main(){ //指针数组 int* arr[10]; //数组指针 int* (*pa)[10] = &arr;*pa pa前面加一颗星说明pa是指针 指向的是[10]说明指向数组有10个元素pa指向数组arr的每个元素类型是int* 所以前面加上int* 函数指针 int(*paAdd)(int,int) = Add; //函数名就是函数的地址&Add.原创 2021-10-17 12:16:09 · 235 阅读 · 0 评论 -
深度迫析数据在内存中的存储
数据类型详细介绍整型在内存中的存储,原码,反码,补码大小端字节序介绍及判断浮点型在内存中的存储解析c语言类型内置类型char 字符数据类型short 短整型int 整型long 长整型long long更长的整型float 单精度浮点数double 双精度浮点数自定义类型(构造类型)以及他们所占存储空间的大小,类型的意义,1.使用这个类型开辟存储空间的大小,(大小决定了使用范围)如何看待内存空间的视角类型的基本归类整型家族:属于内置类型.原创 2021-10-13 11:45:12 · 100 阅读 · 0 评论 -
结构体基础知识
结构体1. 结构体类型的声明2. 结构体初始化3. 结构体成员访问4. 结构体传参结构的基础知识:结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量描述一个学生结构体类型 struct是结构体关键字描述一个学生一些数据名字年龄电话性别结构体类型定义方法一//struct 结构体关键字 Stu结构体标签 struct Stu -结构体类型 struct Stu //这是在定义结构体类型{ //成员变量 char name[20.原创 2021-09-28 21:06:16 · 160 阅读 · 0 评论 -
笔试题一大片
下面代码结果是什么int main(){ int arr[] = { 1, 2, (3, 4), 5 }; printf("%d\n", sizeof(arr));//16 return 0;}上面代码结果是16,因为(3,4)是逗号表达式,只看最后面的那个数字下面代码运行的结果是什么int main(){ char str[] = "hello bit"; printf("%d %d\n", sizeof(str), strlen(str));//10,9 //s.原创 2021-09-28 17:10:58 · 299 阅读 · 0 评论 -
指针详解初级
指针初级详解1. 指针是什么 指针是个变量,存放内存单元的地址2. 指针和指针类型3. 野指针4.指针运算5. 指针和数组6. 二级指针7. 指针数组int main(){ int a = 10;//在内存中开辟一块空间 int* p = &a; //在这里我们对变量a,取出它的地址,可以使用&操作符。 //将a的地址存放在p变量中,p就是一个指针变量//总结:指针就是变量,用来存放地址的变量,(存放在指针中的值,都被当成地址处理)总结:指针是用来存放地址.原创 2021-09-07 20:52:36 · 335 阅读 · 0 评论 -
操作符详解 sizeof ~&<<>>操作符综合使用 前置++和后置++ 传参数组首元素地址 &&逻辑与||逻辑或360的笔试题逗号表达式[]下标引用操作符()函数调用操作符结构体表达式求值整型提升
sizeof 使用int main(){ short s = 0; int a = 10; printf("%d\n", sizeof(s = a + 5));//2 printf("%d\n", s);//0 printf("%d\n", sizeof(int));//4 printf("%d\n", sizeof(short));//2 printf("%d\n", sizeof(long));//4 printf("%d\n", sizeof(char));//1 pr.原创 2021-09-05 19:07:01 · 150 阅读 · 0 评论 -
算术操作符 移位操作符 原码反码补码 位操作符 按位与& 按位或| 按位异或^ 复合操作符 单目操作符 !逻辑反操作 &取地址操作符 sizeof计算变量所占空间大小单位字节
算术操作符#include<stdio.h>int main(){ int a = 5 / 2;//商2余数1 int a = 5 % 2;//%的结果是余数1 printf("a = %d\n", a); return 0;}移位操作符 原码 反码 和补码右移操作符 算术右移 右边丢弃,左边补原符号位,1表示负数0表示正数左移操作符 左边丢弃,右边补0 注意:它们的操作数必须都是整数#include<stdio.h>int main.原创 2021-08-23 00:54:36 · 267 阅读 · 0 评论 -
sizeof 和 strlen 深度理解 数组名是什么 冒泡排序 数组传参 二维数组
sizeof 和 strlen 深度理解1.strlen 和 sizeof没有什么关联2.strlen 是求字符串长度的-只能针对字符串求长度- 库函数 --使用得引头文件3.sizeof 计算变量,数组,类型的大小-单位是字节- 操作符sizeof和strlen具体实例如下#include<stdio.h>int main(){ int arr[10] = {1,2,3};//不完全初始化,剩下的元素默认初始化为0 char arr1[] = "abcdef"; .原创 2021-08-17 02:07:55 · 214 阅读 · 0 评论