
C语言
文章平均质量分 66
C语言
爱吃萝卜的猪
这个作者很懒,什么都没留下…
展开
-
深度刨析多维数组与指针
1.多维数组数组名就为首元素地址当定义如下数组后:int arr[2][3][2] = { 1 }; //这里初始化只有第一个元素为1,其余为0逻辑上可以理解为一个空间矩阵,实际也只是内存中线性存储而我们知道数组名就是首元素地址,所以arr[1] 可以理解为:* (arr+1),arr[1]就是第二个元素的地址(即维护了6-11元素) for (i = 0; i < 2; i++) { printf("arr[%d] :%p \n",i, arr[i.原创 2022-02-08 15:50:41 · 538 阅读 · 0 评论 -
c语言柔性数组
1.柔性数组柔性数组, 也叫0长度数组struct S{ int data; int arr[0]; //0长数组};2.柔性数组的特点结构体中的柔性数组前必须至少有一个成员 sizedof这种结构不包括柔性数组的大小 包含柔性数组的结构开辟空间时需要用 malloc()函数 动态开辟3.柔性数组与传统动态增加大小区别3.1传统动态分配定义:struct S2{ int data; int* point;}; S1*...原创 2022-02-01 13:23:32 · 1232 阅读 · 0 评论 -
c语言memcpy()函数与memmove()函数区别与模拟实现
1.memcpy()1.1简介头文件:#include <string.h>memcpy() 用来复制内存数据,其原型为: void * memcpy ( void * dest, const void * src, size_t num );memcpy() 会复制 src 所指的内存内容的前 num 个字节到 dest 所指的内存地址上。因为传过来的参数用void*接收,所以它并不关心类型参数,可以传递任何类型,之后逐字节地进行复制,...原创 2022-01-30 00:32:43 · 257 阅读 · 0 评论 -
c语言常见的字符串函数及模拟实现
1.strlen实现原理我们知道定义字符数组时,可以有以下两种形式:char a[]="abcd";char a[]={'a','b','c','d'};两者的区别是第一种末尾会带一个'\0',而第二种不会带,所以可以扫描字符数组每一个字符,如果扫描到'\0',扫描结束2.具体模拟strlen函数如下:int my_strlen(char* base) { int length = 0; while ((*base++)!='\0') { length++; }原创 2022-01-14 00:26:24 · 1058 阅读 · 0 评论 -
const修饰指针的效果
1.const关键字const关键字经常用来修饰常量,也就是说当有个变量你不希望改变时,可以用const来修饰const int num=20;num=30;//错误,const修饰的变量不可改变2.const与指针const关键字位置不同,修饰侧重点不同,就会呈现不同的效果当const在类型前面,修饰的是指针变量num所指向的内容,如 const int* num此时const修饰的是 指针变量num所指向的内容,表示指针变量 num 所指向的内存单元里面的内容不可变,指针变量原创 2022-01-21 15:35:21 · 1159 阅读 · 0 评论