C语言
文章平均质量分 73
讲解C语言的各种内容
c++机械师
计科菜鸡一名
展开
-
指针浅谈(五)
上一节我们刚讲过指针数组,指针数组是一个数组,里面存放的是地址(指针)。那什么是数组指针呢,数组指针是一个能够指向数组的指针变量,里面存放的是数组的地址。那怎么定义一个数组指针呢?这是什么意思呢?其实是p先和*结合,声明p是一个指针变量,然后指向一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。原创 2023-12-17 12:08:09 · 255 阅读 · 1 评论 -
中文字符串逆序输出
接下来我查了资料才发现了我之前不知道的知识点,我们知道在字符编码方面,ASCII码为标准符号、数字、英文等进行了保留,取值范围是0~127,还有一部分作为拓展ASCII码128~255,当我们采用非ASCII编码时(汉字编码),一般用拓展ASCII码来进行,约定用128~255范围的连续2个进行汉字编码,因此,在处理字符串时,如果是有符号字符串,遇到小于0的字符,会结合后面紧跟的字符来组成一个汉字,如果是无符号的,则判断是否大于127。同时一个汉字占用两个字节,知道了以上的知识,才能写出正确的代码。原创 2023-12-15 14:58:12 · 464 阅读 · 2 评论 -
指针浅谈(四)
在指针浅谈(三)中我们知道了数组名是什么,任何用指针访问数组,一维数组传参的本质是什么,这一次我们来学习二级指针,指针数组,以及如何用指针数组模拟二维数组。原创 2023-12-13 15:30:41 · 90 阅读 · 2 评论 -
指针浅谈(三)
在指针浅谈(二)中我们讲到了const修饰指针、指针运算、野指针、assert断言和传址调用的内容,今天我们继续学习有关数组名、指针访问数组、一维数组传参的本质相关的内容,内容比较深入,如果觉得哪里讲解的不行,可以参考其他大佬的文章呦。原创 2023-12-13 00:42:58 · 590 阅读 · 3 评论 -
剑指offer一道题的思考
首先我们要知道char在定义一个变量时,内存会为这个变量分配空间,不同的变量,其空间、地址也是不相同的,而str1==str2比较的是地址,不是内容,所以是不相等的,其次char类型在定义一个字符数组时,其内容是可以改变的,而题中的字符串是常量字符串,不可以改变。而str3和str4并非数组而是字符指针,并不分配存储区,其后的常量字符串存放在静态数据区且只有一个,而str3和str4仅仅是指向该区首地址的指针,所以指向同一个空间,地址是相同的,是相等的。下面就让我来讲一下关于这道题背后的本质。原创 2023-12-05 18:18:22 · 177 阅读 · 3 评论 -
指针浅谈(二)
上一节谈到了内存和地址,指针变量的大小,解引用操作符,取地址操作符,以及指针变量类型的意义,具体内容参考C语言指针浅谈(一)。这篇文章我们继续了解关注指针的内容,包括const修饰指针,指针运算,野指针,assert断言,指针的传址调用等内容。原创 2023-12-04 19:36:16 · 473 阅读 · 4 评论 -
C语言指针浅谈(一)
因为指针变量存储的是地址,而根据前面的内容我们了解到,64位机器有64根地址总线,没跟地址线出现的电信号转换成数字信号后是0或1,我们把64根地址线产生的2进制序列当作一个地址,一个地址就是64个比特位,需要8个字节才能存储,所以指针变量的大小在64位机器中就是8个字节,同理在32位机器上就为4个字节。在指针类型中有一种特殊的类型是void*类型,理解为无具体类型的指针(或者叫泛型指针),这种类型的指针可以用来接受任意类型地址,都是void*类型指针不能直接进行指针的+-整数和解引用的运算。原创 2023-12-03 20:45:49 · 311 阅读 · 6 评论 -
字符串函数的使用及其模拟实现
strtok_s()函数增加了一个参数_Context,这个参数就是相当于strtok()函数中内部定义的静态SAVE_PTR指针,用来传递对字符串_String的处理进行到了哪里。其中while循环中的条件表示,每次将src的字符赋值给dest,然后两个指针同时向后走,直到*src=='\0',赋值给dest,*dest=='\0',退出循环,返回首地址。结尾,返回⼀个指向这个标记的指针。strtok函数的第⼀个参数不为NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串中的位置。原创 2023-12-03 12:16:14 · 147 阅读 · 1 评论