自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 问答 (19)
  • 收藏
  • 关注

原创 初学c++完成的第一个类--日期类

C++ 日期类常用的代码实现

2022-10-15 22:18:23 241 1

原创 C++对比C语言

C++和C语言的区别。已更新一条。

2022-06-11 20:00:10 150

原创 关于宏定义

以下是两个宏定义的方程式我们在宏定义的过程中一定不要吝色括号,因为宏定义是强制替换,可能会导致一些优先级的问题首先是交换二进制的奇数位和偶数维#define SWAP(n) ((n & (0xAAAAAAAA)) >> 1) | ((n & (0x55555555)) << 1)int main() { printf("%d", SWAP(170));}这里的思路是把这个二进制的奇数位和偶数位都提取出来,分别是AAAAAAAA 和 555...

2022-03-08 12:31:01 146

原创 关于sprintf 和 sscanf

sprintf函数的格式:int sprintf( char *buffer, const char *format [, argument,…] );sprintf和平时我们常用的printf函数的功能很相似。sprintf函数打印到字符串中(要注意字符串的长度要足够容纳打印的内容,否则会出现内存溢出),而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。以下是printf的格式int printf ( const char * fo

2022-02-22 15:21:44 412

原创 realloc calloc 和 malloc

void *malloc(size_t size);void *calloc(size_t nmemb, size_t size);void *realloc(void *ptr, size_t size);首先是malloc,其原理是向堆区申请一块内存,如果分配成功:则返回指向被分配内存空间的指针不然,返回空指针NULL。而calloc则是在malloc的基础上对其分配的内存进行了初始化(一般都是0)而realloc则是在malloc的基础上增加了调整其内存空间大小...

2022-02-17 10:00:00 160

原创 关于动态内存

比之前用静态内存的好处是动态占用内存更少,基本上就是你想分配多少内存用realloc分配多少就行了,不会像之前可能一个int数组初始化了1000个,结果就用了50个不到。动态内存虽然比静态内存要复杂,但掌握了后确实挺方便的,一般是先用malloc 或者 calloc 开辟内存。个人比较喜欢malloc,因为calloc是把内存开辟完后直接赋值0了。可是很多时候并不是所有的数据都要被赋值0的,我更喜欢malloc之后对需要的数据一个个赋值,这样以后如果要改的话也更容易点。而在之后,因为我们一般ma

2022-02-16 16:48:49 389

原创 memcpy 和 memmove 和 strcpy的区别

首先从字面就能理解memcpy 和 memmove 是跟内存相关的,而strcpy是跟字符串相关那么首先。memcpy原型如下extern void *memcpy(void *dest, void *src, unsigned int count);memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域);而char *strcpy(char *dest, const char *src)虽然也是用于 把资源内存(src所指向的

2022-02-16 13:24:02 1400

原创 宏替换和去注释的问题

由于在预处理中,计算机是先进行去注释再宏替换的,所以在运行如下代码时#include<stdio.h>#define abc //int main() { abc printf("haha\n");return 0;}才不会打印haha。

2021-12-10 15:36:05 532

原创 取模和取余的区别

注意了,除了python是取模,c,c++,c#,java等都是取余。取余和取模在大于0时没有区别,比如,10 / 3 = 3;10%3 = 1;但是当数小于0时,就有区别了,一般来说,绝对值abs(取模的商)会比abs(取余的)大。在绝对值了之后,取模的商*除数是要大于被除数的,而取余的商*除数要小于被除数。如 -10 % 3 = 1;-10 / 3 = -3是取余。而 -10 % 3 = 2;-10 / 3 = -4是取模。...

2021-12-09 18:21:17 1060

原创 continue 对于 while 和 for 循环的区别

//int main() {// for (int i = 0; i < 10; i++) {// printf("continue befor : %d\n", i);// if (i == 5) {// printf("%d\n", i);// continue;// }// printf("continue after : %d\n", i);// }//}int ...

2021-12-02 21:57:38 843

原创 键盘被称为字符设备的原因

int main() { while (1) { int ch = getchar(); printf("%c ", ch); }}如图所示,ch为int类型,打出的却和输入一样,为字符类型,所以我们在显示屏上所看到的时字符型,c语言有三个输出流,stdin,stdout,和stderror,这三个输出流让系统在内部就打开了文件,不用我们自己动手打开了,这也是为什么我们不用运行exe这样的文件也能运行这个程序。而stdout输出在屏幕上的时...

2021-12-02 16:21:14 716

原创 关于getchar为啥是int类型

如果是char 类型就无法 表示获取失败了!getchar()函数用于读取字符,但它返回的是一个int型值,而不是char型值。 尽管表示字符的代码本身是不是int型值,但返回int型值的原因是为了允许函数报告文件的末尾(EOF)。 如果返回值是char型,那么在256个字符中必须有一个被指定用于表示EOF。-1char类型读不到...

2021-12-02 16:09:39 1450

原创 2021-11-28 c语言全方位补习

gets 和 scanf都是以'\0'结束,但不同的是gets的字符串可以带空格,scanf不行,scanf要用在字符串要么就加数组,要么就scanf("%[^\n]%*c", arr);这么写。其次,用数组写字符串的时候可以%s一次性全部输出,也可以%c遍历一次次输出。被static字段修饰的变量,在整个程序运行阶段只会被定义一次...

2021-11-28 15:41:49 512

原创 2021-11-26 float 和int 的原反补

int main() { int number = 9; printf("%d\n", number); float* n = (float*)number; printf("%f\n", n); printf("%d\n", n); return 0;}同样是打印float n ,以整形的形式打印出来和以浮点型的形式打印出来却截然不同,这就要涉及到数据在内存中储存的问题了。首先我们来看int number 和 float n 的原反补:...

2021-11-26 13:07:00 213

原创 2021-11-23 数组名

int arr[20];arr是首地址名,相当于指针,这时不能再加&取地址符,不然就成了首地址的地址了。正确表达:int main() { int arr[20] = {0}; int* p = arr; printf("%d ", *p);}注意,当printf时应选择用*p而不是p,这是因为*是解引用操作符,*p指向的对象是arr,数组的首地址,而p指向的是一个随机值,因为我们并没有给它赋值过(并且不能直接给p赋值)。可以通过改变*p来改变数组的首地址...

2021-11-23 22:31:47 223

原创 指针与类型问题

#include <stdio.h>int main(){int arr[] = {1,2,3,4,5};short *p = (short*)arr;int i = 0;for(i=0; i<4; i++){*(p+i) = 0;}for(i=0; i<5; i++){printf("%d ", arr[i]);}return 0;}这么一窜代码,它的输出确实0 0 3 4 5 ,因...

2021-11-17 13:09:11 50

原创 2021-10-28 2021-10-26的问题纠正

#include <stdio.h>#include <string.h>#define max 9int main() { int a, b, c; int number = scanf("%d%d%d", &a, &b, &c); printf("%d", number); return 0;}可以看到输出的scanf的赋给number的值是根据scanf中有几个数被赋值而变得。如图中有三个值,则scanf的总值就为3,把3..

2021-10-28 21:00:17 59

原创 2021.10.27 随笔,sizeof(arr)的问题

请看如下代码:今天在写求十个数中最大值的问题,我用了遍历的方法,但出现了如下问题。#include <stdio.h>#include <string.h>int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int number = sizeof(arr); int max = arr[0]; printf("%d\n", number); for (int i = 1; i < nu

2021-10-27 17:46:49 225

原创 2021-10-26 随笔 scanf 的赋值问题

大家好,在今天写代码的过程中,本人想省略行数,于是把下列函数进行了修改:#include <stdio.h>int main() { int a; scanf("%d", &a); printf("%d", a); return 0;}我把它进行了调整,变成了以下代码#include <stdio.h>int main() { int a = scanf("%d", &a); print

2021-10-26 22:16:25 1188

原创 我的第一篇博客

大家好,我是小丁,一名平平无奇的大一学生。处于对未来的 规划,我就从今天,也就是2021/10/26真正开始了我的c语言之旅。我的目标是,在未来的一年内,学穿c/c++,有空再去学学java。我知道这很困难,但是既然我已经决定了,怎么着也要学下去。知识点很重要,知识点的运用更重要,所以我的计划是运用平时的碎片时间去刷题,看讲解,然后跟着我自己的节奏走,怎么说也要每周学满个5天吧。对于国内公司,我比较想进腾讯,bilibili,字节和阿里云。没有为什么,就是喜欢。...

2021-10-26 12:53:11 57

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除