C语言
文章平均质量分 66
c语言基本知识点
III Fated
这个作者很懒,什么都没留下…
展开
-
C语言中常见的字符串函数
常见的字符串函数:strlenstrcpystrcatstrcmp在使用字符串函数时,一定要使用 #include <string.h> 头文件1、strlen原型:strlen(str1);函数功能:计算字符串str1的长度返回值:一个int值注意:字符串的长度不包括字符’\0’char str1[20] = "We are csdn!";int size = strlen(str1);printf("%d\n", size); //size = 122、s原创 2022-03-29 23:24:50 · 9360 阅读 · 0 评论 -
指针数组、数组指针和指针函数、函数指针简单辨析
一、指针数组、数组指针指针数组:本质是一个数组,数组内存放的元素是指针类型(32位平台4字节)char *arr[4] = {"hello", "world", "shannxi", "xian"};//arr就是我定义的一个指针数组,它有四个元素,每个元素是一个char *类型的指针,这些指针存放着其对应字符串的首地址。数组指针:本质是一个指针,这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。char (*pa)[4];二、指针函数、函数指针指针函数:本质是一个函数,原创 2022-03-29 23:11:56 · 526 阅读 · 0 评论 -
Linux下fork()
1、fork()的使用写时拷贝技术:子进程复制了父进程,一开始与父进程指向同一块物理内存。因此看起来父子进程完全相同,但是进程之间具有独立性。意味着当这块物理内存中数据即将发生改变时会重新给子进程开辟物理内存,将数据拷贝过来,因为子进程应该有自己的数据。2、vfrok函数的使用创建一个子进程,并且阻塞父进程,直到子进程exit提出或者程序替换之后,父进程才会运行。vfrok创建子进程效率比较高,因为vfork创建子进程之后与父进程共用同一个虚拟地址空间。3、子进程作用创建子进程大多数情况下并原创 2022-03-16 20:52:34 · 206 阅读 · 0 评论 -
数据结构链表的操作
一.链表1.单链表逆置解题思路:使用递归函数,一直递归到链表的最后一个结点,该结点就是反转后的头结点,记作 ret此后,每次函数在返回的过程中,让当前结点的下一个结点的 next 指针指向当前节点。同时让当前结点的 next 指针指向 NULL ,从而实现从链表尾部开始的局部反转当递归函数全部出栈后,链表反转完成。递归实现版:非递归实现版本解题思路:定义两个指针: pre 和 cur ;pre 在前 cur 在后。每次让 pre 的 next 指向 cur ,实现一次局部反转局部反转原创 2022-03-16 20:16:45 · 1402 阅读 · 0 评论 -
const关键字
const关键字const是编程过程中应该尽可能多使用的关键字,它指定一个不可变对象,编译器会强行执行这个约束,来增强的代码的健壮性。const可用来修饰变量、参数,函数返回值、函数本身,可谓多才多艺 。1. const修饰变量1.1在Effective C++条款2中讲到,尽量使用const声明常量来替换#define声明的宏定义常量。(inline替换#define的函数)1.2.const修饰指针1.3.const修饰迭代器2.修饰函数形参使用const修饰函数形参,可防止该参数原创 2022-03-09 23:25:15 · 291 阅读 · 0 评论 -
sizeof和strlen比较
sizeof和strlen比较sizeof是计算一个数据类型的大小,此类型可以是数组、函数、指针、对象等。其单位是字节,返回值是sizez_t类型,也就是unsigned int 无符号整型。strlen是计算一个指定字符串的长度,函数原型是size_t strlen(const char *s)其返回值是sizez_t,返回的是字符串长度。区别:sizeof 是一个运算符,不是一个函数,所以不需要包含在头文件中strlen需要包含在头文件 # include<string.h>中原创 2022-03-09 23:15:17 · 433 阅读 · 0 评论 -
常见的排序算法
准备工作1、冒泡排序1.1冒泡排序的思想一趟排序的过程,将相邻的两个元素进行比较,如果前一个比后一个大,则将两个元素交换 – 将最大的元素交换到整个数据的最后。排序的趟数: 数据元素的个数: len - 1时间复杂度:O(n^2) 空间复杂度:O(1) 稳定性: 稳定的2、选择排序2.1选择排序的思想先遍历一遍整个待排序数据,找到当前最大的值的 位置 。将标记的最大值与当前最后一个元素交换。重复上述过程,直到只剩下一个数据。上面的步骤每做一次,下一次就少遍历一个数据(本次找到的最大原创 2022-03-09 22:38:34 · 717 阅读 · 0 评论 -
static关键字
对一个类中成员变量和成员函数来说,加了static关键字,则此变量/函数就没有了this指针了,必须通过类名才能访问1. 全局静态变量在全局变量前加上关键字static,全局变量就定义成一个全局静态变量。加了static关键字的全局变量只能在本文件中使用。例如在a.c中定义了static int a=10;那么在b.c中用extern int a是拿不到a的值得,a的作用域只在a.c中。静态存储区,在整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意.原创 2022-03-07 09:20:39 · 119 阅读 · 0 评论 -
八皇后问题
问题描述:皇后是国际象棋中威力最大的棋子,在下面所示的棋盘上,皇后可以攻击位于箭头所覆盖的位置上的所有棋子。 在此主要运用穷举法来解决该问题:0 0 0 ...原创 2020-08-15 13:12:01 · 185 阅读 · 0 评论 -
统计一个十进制数n的位数,并顺序、逆序输出
1.统计个数方法:丢弃个位数字 /10例如: 1234/10=123 123/10=12 12/10=1 1/10=0int Figure(int n){ if(n == 0) return 1; int count = 0;//count计数器 while(n != 0) { n /= 10;// n=n/10 count++; } return count;...原创 2020-08-07 18:14:15 · 449 阅读 · 0 评论