- 博客(15)
- 收藏
- 关注
原创 语态句法语法~~
以特殊疑问词开头,对句中某一成分提问的句子Tomdancedwitha bearWhoWhatWhoWhen2.2常用的疑问词。
2024-06-23 00:14:18 504
原创 英语基础语法-
一定虚词,不能单独使用,用于名词前从属连词通常引导一个从句修饰主语并列连词是连接单词、短语、或句子的一种虚词介词用来表示词与词、句与句的关系的词形容词:修饰名词,名词前系动词后副词:修饰动词、形容词、副词和整句话形修名 副修动表示说话人的态度和看法。
2024-06-10 22:49:40 917
原创 字符函数和字符串函数
这个头⽂件中说明 的,C语⾔程序启动的时候就会使⽤⼀个全⾯的变量errno来记录程序的当前错误码,只不过程序启动 的时候errno是0,表⽰没有错误,当我们在使⽤标准库中的函数的时候发⽣了某种错误,就会讲对应 的错误码,存放在errno中,⽽⼀个错误码的数字是整数很难理解是什么意思,所以每⼀个错误码都是 有对应的错误信息的。size_t num比较⽐较str1和str2的前num个字符,如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀ 样,就提前结束,⼤的字符所在的字符串⼤于另外⼀个。
2024-04-21 15:59:26 773 1
原创 sizeof和strlen的对比
如果操作数是类型的话,计算的是使⽤类型创建的变量所占内存空间的⼤⼩。只关注占⽤内存空间的⼤⼩,不在乎内存中存放什么数据。字符,直到找到为⽌,所以可能存在越界查找。计算变量所占内存内存空间⼤⼩的,在学习操作符的时候,我们学习了。之前字符串中字符的个数。中这个地址开始向后,
2024-04-06 15:20:06 141 1
原创 冒泡排序和qosrt函数实现
const void*,const void* 表示要进行比较的两个数 相减 指向同一个空间的两个指针相减会变成一个整数,如果大于0表示e1大于e2交换位置,等于0表示相等, 小于0表示e1小于e2不交换位置。j++) //循环一次之后,要比较的数就会减少一次,所以-i。可以看到这里只进行了一次冒泡排序,而我们需要的不止是一次,因为冒泡是两两相邻进行比较,所以需要进行0~n-1次 (n代表的是数组的长度)qsort函数有这4个参数,分别是函数地址 ,数组元素,字节大小,和判断元素的大小。
2024-04-06 14:56:33 1771 1
原创 指针(二)
同理arr[i] 应该等价于*(arr+i),数组元素的访问在编译器处理的时候,也是转换成⾸元素的地址+偏移 量求出元素的地址,然后解引⽤来访问的。这⾥我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,⽽且 是数组⾸元素的地址,我们来做个测试。三个打印的都是一样的,因为%p打印地址是打印数组开始的地址,&arr虽然取的是整个数组的地址,但是最开始的地址是和arr[0]是一样的。,sizeof中单独放数组名,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。
2024-04-02 17:28:36 782 1
原创 指针(—)(2)
在上⾯的代码中,将⼀个int类型的变量的地址赋值给⼀个char*类型的指针变量。指针变量的⼤⼩和类型⽆关,只要是指针变量,在同⼀个平台下,⼤⼩都是⼀样的,为什么还要有各 种各样的指针类型呢?• const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。• const如果放在*的右边,修饰的是指针变量本⾝,保证了指针变量的内容不能修改,但是指针指 向的内容,可以通过指针改变。类型的指针是使⽤在函数参数的部分,⽤来接收不同类型数据的地址,这样的设计可以 实现泛型编程的效果。
2024-03-27 18:43:00 1410
原创 指针(—)(1)
前⾯的内容我们了解到,32位机器假设有32根地址总线,每根地址线出来的电信号转换成数字信号后 是1或者0,那我们把32根地址线产⽣的2进制序列当做⼀个地址,那么⼀个地址就是32个bit位,需要4 个字节才能存储。我们知道计算上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数 据也会放回内存中,那我们买电脑的时候,电脑上内存是8GB/16GB/32GB等,那这些内存空间如何⾼ 效的管理呢?• 注意指针变量的⼤⼩和类型是⽆关的,只要指针类型的变量,在相同的平台下,⼤⼩都是相同的。
2024-03-25 17:57:44 465 1
原创 3个循环语句
for和while在实现循环的过程中都有初始化、判断、调整这三部分,但是for循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候while循环的三个部分就比较分散,所以从形式上for循环要更优一些。到这里我们就能分析出来,continue可以帮助我们跳过某一次循环continue后边的代码,直接到循环的判断,进行下一次循环的判断,如果循环的调整是在continue后边的话,可能会造成死循环。打印了1.2.3.4后,当i等于5的时候,循环在break的地方终止,不再打印,不再循环。
2024-01-23 20:59:49 860
原创 switch语句
原因是switch语句也是分支效果的,只有在switch语句中使用break才能跳出switch语句,如果某一个case语句后边没有break语句,代码会继续往下执行,有可能执行其他case语句中的代码,直到遇到break语句或者switch语句结束。在使用switch语句的时候,我们经常可能遇到一种情况,比如switch后的表达式中的值无法匹配代码中的case语句的时候,这时候要不就不做处理,要不就得在switch语句中加入default子句。前面的代码中,如果我们去掉break,会出现什么情况呢?
2024-01-23 18:04:15 918 1
原创 分支if和switch
上面的代码排版,让else和第一个if语句对齐,让我们以为else是和第一个if匹配的,当if语句不成立的时候,自然想到的就是执行else子句,打印haha,但实际上else是和第二个if进行匹配的,这样后边的if…else语句是嵌套在第一个if语句中的,如果第一个if语句就不成立,嵌套if和else就没机会执行了,最终啥也不打印。这就是悬空else的问题,如果有多个if和else,可以记住这样一条规则,else总是跟最接近的if匹配。上面的代码,你会发现输入的值不管是>=18 ,还是小于18,"
2024-01-23 17:53:50 403 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人