
C语言
文章平均质量分 73
C语言
二年级程序员
这个作者很懒,什么都没留下…
展开
-
C语言的内存函数
C语言库函数中有可以直接对内存操作的函数,这类函数叫作内存函数。内存函数即针对内存块进行数据处理的函数,内存块的意思就是“一块内存,一块空间”。原创 2025-03-19 23:58:38 · 1209 阅读 · 0 评论 -
一篇文章带你解决两类“字符函数”
C语⾔中有⼀系列的函数专门用于字符分类,也就是⼀个字符是属于什么类型的字符的。ASCII码值97对应的是小写字母'a',所以返回值为非0整数,将运行程序后,得到的返回值为2。空白字符:空格‘’,换页‘\f’,换行'n',回车‘\r’,制表符\t'或者垂直制表符'\v'。如果是小写字母,就返回非0的整数,如果不是小写字母,则返回0。函数的返回值为int类型,然后传递的参数本质上是ASCII值,也为int类型。十六进制数字,包括所有十进制数字字符,小写字母a~f,大写字母A~F。十进制数字‘0’~‘9’字符。原创 2025-03-06 22:39:34 · 682 阅读 · 0 评论 -
一篇文章带你解决“字符串函数”
第二个参数delimiters指向一个字符串,原创 2025-03-07 23:57:10 · 1010 阅读 · 0 评论 -
“arr[i]”访问数组元素的本质
则[0x1000]对应arr[0]、[0x1004]对应arr[1]、[0x1008]对应arr[2]......,我们可以利用arr[0]、arr[1]、arr[2]、arr[3]、arr[4]依次访问各个数组,那。,因为arr是指向首元素的指针,地址为0x1000,指向数组的第1个元素;则指针(arr + 1),地址为0x1004,指向数组的第2个元素。指针(arr + 1)指向数组的第2个元素,对其解引用*(arr + 1),即得到数组的第2个元素。arr[1]的的本质是*(arr + 1)原创 2025-03-02 23:56:37 · 680 阅读 · 0 评论 -
sizeof与strlen的理解与区分
传递一个字符的地址str给函数,然后从这开始向后寻找字符,直至找到'\0',得到'\0'之前的字符总个数,并将这个值作为返回值返回。但是在sizeof(数组名)的情况下,这里的数组名表示整个数组,计算得到的是整个数组的字节数。3、关注内存中是否有'\0',如果没有'\0',就会持续往后找,可能造成越界。因为得到的结果是非负整数,所以strlen函数的返回值是无符号整数。,所以strlen("AB")本质上传递的是字符'A'的地址。2、srtlen是求字符串⻓度的,统计的是\0之前字符的个数。原创 2025-03-08 21:23:33 · 1255 阅读 · 0 评论 -
如何理解“指针+1”
所以(arr+1)代表着跳过一个整型数据‘1’,指针arr会指向跳过这个数据后的地址,对它解引用有*(arr+1)=2。因为指针常常存储在指针变量中,所以多见上面“p+1”这种“指针变量+1”的操作,arr与&arr的地址值相同,但是指向的数据类型完全不同,所以“指针+1”的结果也完全不同。则意味着(&arr+1)会跳过一整个数组,指针&arr会指向跳过这个数组后的地址。因为一个整型数据占4个字节,需要4个内存单元储存,所以指针的地址值+4。当我们对arr+1时,因为。,让指针指向回跳一个数据后的地址。原创 2025-02-25 21:15:28 · 377 阅读 · 0 评论 -
字符指针数组存储字符串的原理
字符串可以通过"apple"[0]得到第一个元素a,但是因为数组名 "apple"作为指针时的类型为const char*,),因为 "apple"可以视为一个数组名,因为 "apple" 是匿名数组,所以它与普通数组(如 char arr[6];,类型为 char[6],内容为{‘a’,‘p’,‘p’,‘l’,‘e’,‘\0’,},,语法上不会报错,但是运行时会导致异常,这种异常属于运行时错误的内存访问违规。原创 2025-02-25 18:13:54 · 469 阅读 · 0 评论 -
指针数组与数组指针
整型数组说明数组存储的内容是整型数据,那么指针数组就说明数组存储的内容是指针。整型数组的数据类型是int[10],所以整型数组指针变量的定义为“int (*p) [10]”,用于指向整型数组。我们最常见的就是整型数组,它的定义方式是“int arr[10]”,arr是数组名,[ ]中的数字是数组的个数,int说明数组中存储的数据类型是整型。我们最常见的就是整型指针变量,它的定义方式是“int* p”,p是整型指针变量的变量名,*表示p是一个指针变量,int表示指针指向的数据类型是整型。原创 2025-02-24 22:39:32 · 297 阅读 · 0 评论 -
变量通常需要开辟多个内存单元存储数据,那么变量的地址是哪个
通过调试,我们可以清楚地看到,变量a在内存中开辟了一块空间,用于储存整型数据20(由于这里是16进制,所以显示的是14)。但当我使用取地址符‘&’,取出这个整型变量的地址,赋值给整型指针变量的时候,因为整型指针变量只能存储一个数据,所以肯定只会取出一个地址,而这个地址就是整型变量的地址,那这个地址究竟是哪个呢?,1个内存单元就会有1个地址编号,大小是1个字节。但是1个整型数据的大小为4个字节,也就是整型变量需要在内存中开辟4个内存单元后,才可以存储1个整型数据,那就是说整型变量会对应4个地址编号。原创 2025-02-19 19:00:03 · 558 阅读 · 0 评论 -
什么是指针与指针变量
这里的*说明p是一个指针变量,前面剩余的int则说明这个指针变量指向的数据是整型的,即这个地址里面存放的是一个整型变量。比如说一个整型指针,它的含义是我指向一个整型数据,我的地址对应的是一个整型数据,它有一个指向性。在计算机中,数据存储在内存里面,内存是由一个个内存单元组成的。一个内存单元由8个比特位,即一个字节组成,每个内存单元都会有对应的地址,地址编号是连续的,而这个地址就是我们的指针。至于存储1个整型需要4个字节,但是1个内存单元只有1个字节,那说明存储整型就需要多个内存单元,即对应多个地址,原创 2025-02-12 17:44:25 · 171 阅读 · 0 评论 -
如何正确理解“解引用”
由上述知识点可知,&arr取出的是整个数组的地址,arr表示的是数组首元素的地址,但是两个地址都是一样的。那么arr[0]作为一维数组的数组名,表示一维数组首元素的地址,同时也是指向一维数组首元素的指针,对一维数组首元素的指针解引用,得到的就是一维数组首元素。综上,arr是第一个一维数组的地址,*arr是第一个一维数组首元素的地址,**arr是第一个一维数组的首元素。可以访问具体的数据;arr表示第一个一维数组的地址,说明它是指向第一个一维数组的指针,对一个一维数组的指针解引用,得到的就是一个一维数组。原创 2025-02-21 11:36:56 · 542 阅读 · 0 评论 -
一篇文章带你入门C语言函数
在 C 语言中,函数是一段具。原创 2025-03-05 00:25:07 · 1299 阅读 · 0 评论 -
printf函数与scanf函数(详细超全版)
使用这个函数之前,原创 2025-03-23 20:20:48 · 1966 阅读 · 0 评论 -
C语言的数据类型与变量(完整版)
在 C 语言中,数据类型是一个非常基础且关键的概念。它本质是“在内存中开辟一块空间用于存储数据”,并且规定了数据的取值范围、存储方式以及可以对这些数据进行的操作。合理使用数据类型不仅能提高程序的效率,还能确保程序的正确性和稳定性。原创 2025-03-22 17:16:57 · 1092 阅读 · 0 评论 -
C语言入门知识(下)
C语言中有⼀批保留的名字的符号,比如: int、if、return,这些符号被称为保留字或者关键字。关键字都有特殊的意义,是保留给C语言使用的;程序员自己在创建标识符的时候是不能和关键字重复的;同时关键字也是不能自己创建的。 以下是一些常见的 32 个关键字,不需要刻意记忆,再后续的学习中,会反复遇到。原创 2025-03-21 12:27:03 · 1048 阅读 · 0 评论 -
C语言入门知识(上)
计算机能识别的指令就是机器指令,机器指令是0和1组成的序列。C语言是一门编译型高级语言,需要先将其编译成计算机能识别的机器指令,才能在计算机上运行,执行相应功能。而将高级语言编译成机器指令的工具即为编译器。原创 2025-03-20 23:40:00 · 1362 阅读 · 0 评论 -
C语言的历史与发展
C 语言从 UNIX 实验室走向全球,不仅塑造了现代软件生态,也为计算机科学奠定了重要基础。其设计哲学。原创 2025-03-09 20:57:55 · 866 阅读 · 0 评论