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 · 202 阅读 · 0 评论 -
动态内存管理(malloc calloc realloc)
为什么存在动态内存分配目前我们已经掌握的内存开辟方式有:int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间方式有两个特点:1.空间开辟大小是固定的。2.数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是有时候我们所需要的空间大小在程序运行的时候才能知道,此时就需要动态内存开辟。1.mallocvoid* malloc (size_t size);这个函数向内存申请一块连原创 2020-11-16 21:42:41 · 208 阅读 · 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 · 301 阅读 · 0 评论 -
指针和数组中sizeof和strlen的相关笔试题
重点:数组名表示首元素的地址,但是有两个例外:(1)sizeof(数组名),数组名表示整个数组,计算的是数组的总大小,单位是字节。(2)&数组名,数组名表示整个数组,取出的是整个数组的地址。(3)除(1)(2)之外,所有遇到的数组名都表示的是数首元素的地址。...原创 2020-10-21 20:54:55 · 202 阅读 · 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 · 154 阅读 · 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 · 284 阅读 · 1 评论