
C语言
文章平均质量分 79
C语言基础和进阶
du1232
这个作者很懒,什么都没留下…
展开
-
C++ 初始化列表+static成员+友元函数+友元类
1. 初始化列表 初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。 class Time { public: Time(int hour)//这里的构造函数不能被调用 //1.因为没有传参,需要调用的是无参的构造函数 //2.因为没有传参,如果Time(int hour = 1),有默认值,就可调用 :_hour(hour) { cout << "Time(int hour)" << endl原创 2021-03-23 20:55:02 · 211 阅读 · 0 评论 -
动态内存管理(malloc calloc realloc)
为什么存在动态内存分配 目前我们已经掌握的内存开辟方式有: int val = 20;//在栈空间上开辟四个字节 char arr[10] = {0};//在栈空间上开辟10个字节的连续空间 但是上述的开辟空间方式有两个特点: 1.空间开辟大小是固定的。 2.数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。 但是有时候我们所需要的空间大小在程序运行的时候才能知道,此时就需要动态内存开辟。 1.malloc void* malloc (size_t size); 这个函数向内存申请一块连原创 2020-11-16 21:42:41 · 222 阅读 · 0 评论 -
几种常见的字符函数和字符串函数的模拟实现
strlen 功能说明 size_t strlen ( const char * str ); 字符串以 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。 参数指向的字符串必须要以 ‘\0’ 结束。 strlen函数的模拟实现 思路: 1、函数传参传递的是字符串首元素的地址 2、(*str++)遍历整个字符串元素,直到遇到 ‘\0’ 停止 模拟实现strlen #include<stdio.h> #include<strin原创 2020-11-11 18:05:22 · 331 阅读 · 0 评论 -
指针和数组中sizeof和strlen的相关笔试题
重点: 数组名表示首元素的地址,但是有两个例外: (1)sizeof(数组名),数组名表示整个数组,计算的是数组的总大小,单位是字节。 (2)&数组名,数组名表示整个数组,取出的是整个数组的地址。 (3)除(1)(2)之外,所有遇到的数组名都表示的是数首元素的地址。 ...原创 2020-10-21 20:54:55 · 215 阅读 · 0 评论 -
函数指针
函数指针 指向函数的指针,存放函数的地址。 #include"stdio.h" int Add(int x, int y); { return x + y; } int main() { int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8 }; int(*p)[10] = &arr;//取出数组的地址,p就是数组指针 int(*pf)(int, int) = &Add; printf("%p\n",&Add); printf("%p\n", A原创 2020-11-17 21:42:59 · 165 阅读 · 1 评论 -
指针与指针进阶
指针与指针的进阶 指针定义 指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此将地址形象化的称为“指针 ”。意思是通过它能找到以它为地址的内存单元。 指针大小 32位平台是4个字节;64位平台是8个字节。 指针类型 char *pc = NULL;`在这里插入代码片` int *pi = NULL; short *ps = NULL; long *pl = NU原创 2020-10-16 16:15:06 · 291 阅读 · 1 评论