
基础代码片段理解
较为基础,并不高深,难度尚浅
扳手的海角
这个作者很懒,什么都没留下…
展开
-
静态函数(static void)中不可以使用普通成员变量
静态成员函数无法调用普通成员变量,可以在外面另写一个普通成员函数,去让静态成员函数调用来实现功能(功能实现放到普通成员函数中去)原创 2021-02-23 13:01:36 · 1100 阅读 · 0 评论 -
保存字符串的指针,即为指针的指针
因为字符串带“” :双引号,其本身就可以当做指向字符串的指针,那么要保存这些字符串的地址信息,就需要指针的指针来保存了..temp数组当中包含的元素都是指向 char类型 的指针#include <stdio.h>#include <string.h>#include <stdlib.h>#define LEN 100int main(void){ char **pt; char temp[LEN]; int i, n, length; pr原创 2021-01-09 19:24:28 · 320 阅读 · 0 评论 -
给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。
举个例子:11 除以 3 。 开始理顺被除数与除数之间的关系 :首先11比3大,结果至少是1(余数最小为1), 然后我让3翻倍,就是6,发现11比3翻倍后还要大,那么结果就至少是2了(假定余数是2,因为除数变大了),那我让这个6再翻倍,得12,11不比12大,吓死我了,差点让就让刚才的最小解2也翻倍得到4了。但是我知道最终结果肯定在2和4之间。也就是说2再加上某个数,这个数是多少呢?我让11减去刚才最后一次的结果6,剩下5,我们计算5是3的几倍,也就是除法,看,递归出现了(因为我们又需要开始计算被除原创 2021-01-04 14:18:02 · 768 阅读 · 0 评论 -
13章-fseek()和ftell()来进行文件内容的读取
#include<stdio.h>#include<stdbool.h>#include<stdlib.h> //为 malloc()\free() 、exit()提供原型#include<string.h>#define CNTL_Z '\032' //DOS文本文件中的结束标记#define SLEN 81int main(void){ char file[SLEN]; char ch; FILE *fp;原创 2020-12-15 16:56:06 · 249 阅读 · 0 评论 -
一个数组中有N个数,要求去除其中重复的数字(重复的数字只保留一个)
算法思想#include <stdio.h>int main(){ int a[6] = { 1, 3, 4, 1, 8, 4 }; int len = 6; int distance = 0; //算法思想:每一个数和它之后的数比较(该数不动),如果重复,找到重复的那位数,那位数之后的数前移 //例如 :1与3、4、1、8、4比较 ;3与4、1、8、4比较 //i不动 for (int i = 0; i < len; i++) { for (int j原创 2020-12-15 10:06:12 · 5638 阅读 · 3 评论 -
13章13.4题---fprintf()以及fscanf()以及 (正确的)错误信息打印
#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX 41int main(void){ FILE *fp; char word[MAX]; if ((fp = fopen("C:\\Users\\李国强\\source\\repos\\13\\13\\words.txt", "a+")) == NULL); { fprintf(stdout, "can't create原创 2020-12-14 22:31:12 · 198 阅读 · 4 评论 -
c primer plus第13章-中一个简单的文件压缩程序
#include<stdio.h>#include<stdbool.h>#include<stdlib.h> //为 malloc()\free() 、exit()提供原型#include<string.h>#define LEN 100int main(int argc, char *argv[]){ FILE *in, *out; int ch; char name[LEN]; //存储输入文件名 int count = 0; /原创 2020-12-13 11:36:14 · 333 阅读 · 0 评论 -
13章-简单的【读文件】操作以及判断
#include<stdio.h>#include<stdbool.h>#include<stdlib.h> //为 malloc()\free() 提供原型int main(int argc, char *argv[]){ int ch; //读取文件时,存储字符的地方 FILE *fp; unsigned long count = 0;//全局变量 if (argc != 2) //当前参数只有一个文件名 { printf("usage:原创 2020-12-13 10:26:30 · 166 阅读 · 0 评论 -
对【引用式声明、定义式声明以及对全局数据使用const的理解】
对全局数据使用const第一种方案#include<stdio.h>#include<stdbool.h>#include<stdlib.h> //为 malloc()\free() 提供原型/*file1.c*/const double PI = 3.14;const char * MONTHS[12] = { "JAN", "FEB", "MAR" };file1中属于定义式声明–定义了一些外部const变量,定义式声明给定值的信息,加const :原创 2020-12-05 21:25:43 · 286 阅读 · 0 评论 -
12章--分配内存malloc() 和 free() 详解
#include<stdio.h>#include<stdbool.h>#include<stdlib.h> //为 malloc()\free() 提供原型int main(void){ double *ptd; int max; int number; int i = 0; puts("该数组类型有多大?"); if (scanf("%d", &max) != 1) { puts("数字输入错误!"); exit(EXIT_F原创 2020-12-05 20:19:39 · 151 阅读 · 0 评论 -
typedef void(*Func)(void)--循循渐进的理解形式(浅)
比较熟悉的typedefint i;//定义一个整型变量itypedef int myInt;myInt j;//定义一个整型变量j上面介绍得是我们常用的比较简单的typedef的用法,下面首先介绍一下函数指针。函数指针的形式:形式1:返回类型(*函数名)(参数表)#include <iostream> using namespace std;//定义一个函数指针pFUN,它指向一个返回类型为char,有一个整型的参数的函数char (*pFun)(int);//定义原创 2020-12-03 14:33:00 · 211 阅读 · 0 评论 -
while(*str)的意思
*str是指针字符串的指针,while(str)意思是说当指针还没到STR的末尾时,做while循环当到达STR末尾后,就跳出while循环,这里的str并不是真假问题。原创 2020-10-15 09:45:57 · 1810 阅读 · 0 评论 -
char *s_gets(char *st, int n) --11章--11.10代码理解
char *s_gets(char *st, int n){ char *ret_val; char *find; /*fgets获取的是一行字符串,遇到换行符或读取到n-1个字符时结束读取,前者将换行符保存进字符串st,然后再保存一个空字符*/ /*注意字符串中的空格字符不是'\0'*/ ret_val = fgets(st, n, stdin); /*成功读取数据为返回str,不成功则返回NULL空指针 */ if (ret_val != NULL) { /*strchr是专门搜索原创 2020-11-05 22:23:49 · 945 阅读 · 1 评论 -
void show(void (* fp)(char *), char * str) { (*fp)(str); puts(str);}
概念的理解函数指针经常用作另一个函数的参数,告诉该函数要使用哪一个函数来达到目的。函数也是有地址的,指向函数的指针中储存着函数代码的起始处的地址。void (*pf)(char ); // pf 就是一个指向函数的指针【从该声明可以看出, 第1对圆括号把和pf括起来, 表明pf是一个指向函数的指针。 因此, (*pf)是一个参数列表为(char *)、 返回类型为void的函数】,并且声明一个数据指针时, 必须声明指针所指向的数据类型( char * str:str指向char型类型的数据 )。 声原创 2020-08-31 14:21:12 · 1530 阅读 · 0 评论