随笔分类 -  c语言

摘要:所有程序都要留有足够的内存来运行。这些内存中有的是自动分配的: float x; char place [] = "The world!"; 为一个基本数据类型的值和一个字符串预留了足够的内存,或者显式指定分配一定数量的内存: char place[100]; 除了这些,还可以动态分配内存:主要工具 阅读全文
posted @ 2022-08-02 13:19 星雨boy 阅读(61) 评论(0) 推荐(0) 编辑
摘要:C提供了多种不同的模型或者是存储类别在内存中存储数据。 编程中使用的数据大都存储在内存中。从硬件方面来看,被存储的每个值都占用了一定的物理空间,C语言把这一内存称为对象。对象可以存储一个或多个值。对象可能没有存储数据,但是它在存储适当的值是一定有相应的大小(面对对象编程中的对象指的是类对象,其定义包 阅读全文
posted @ 2022-07-24 15:02 星雨boy 阅读(136) 评论(0) 推荐(0) 编辑
摘要:介绍递归 递归——函数自己调用自己。递归有时难以捉摸,有时却很方便实用。如果结束递归是使用递归的难点,如果递归代码中没有终止递归的条件测试部分,一个调用自己的函数会无线递归,这会造成很大的麻烦。 可以使用循环的地方通常都可以使用递归。有时候循环解决问题比较好,有时候递归更好。递归方案更简洁,但效率没 阅读全文
posted @ 2022-07-18 14:32 星雨boy 阅读(192) 评论(0) 推荐(0) 编辑
摘要:C提供了许多处理字符串的函数,存放在string.h头文件中。常用的有:strlen()、strcat()、strcmp()、strcpy()和strncpy()。另外还有sprintf(),存放在stdio.h头文件中 1、strlen() 用于计算字符串长度。下面的函数可以修改字符串的长度,其中 阅读全文
posted @ 2022-07-03 16:50 星雨boy 阅读(139) 评论(0) 推荐(0) 编辑
摘要:如果C中的函数不满足需求,可以在getchar()和putchar()的基础上自定义所需的函数 列子:类似于puts()但不会换行 其中while判断可以改成这样: while(*string) 当指向空字符时,*string的返回值是0,即退出循环,更简洁一点。 阅读全文
posted @ 2022-06-19 09:46 星雨boy 阅读(237) 评论(0) 推荐(0) 编辑
摘要:如果想把一个字符输入进程序,首先必须预留足够的空间,然后用输入函数获取该字符串。 关于空间的分配,可以直接声明数组的大小,还可以使用C库函数来动态分配,之后会详细介绍,为字符串分配内存后,便可读入字符串,C库提供了许多读取字符串的函数:scanf()、gets()和fgets()。 一、字符串的输入 阅读全文
posted @ 2022-06-18 20:55 星雨boy 阅读(177) 评论(0) 推荐(0) 编辑
摘要:字符串是以空字符(\0)结尾的char类型数组。因此,可以将数组与指针的知识应用于字符串。不过,字符串非常常用,所以有提前写好的处理字符串的函数。本章将讨论字符串的性质、如何声明字符串、如何输入输出字符串、如何操控。 可能注意到,上图中代码,用的puts()函数来输出字符串:puts函数只能显示字符 阅读全文
posted @ 2022-06-14 09:03 星雨boy 阅读(96) 评论(0) 推荐(0) 编辑
摘要:假设给带int类型形参的函数传递一个值,要传递int类型的变量,但是也可以传递int类型常量,对于带数组形参的函数,情况不同,可以传递数组,但是没有等价的数组常量。C99新增了复合字面量(compound ltra)。字面量是除符号常量外的常量,例如,5是int类型字面量,81.3是double类型 阅读全文
posted @ 2022-05-08 13:05 星雨boy 阅读(127) 评论(0) 推荐(0) 编辑
摘要:之前处理二维数组的函数中可能不太理解,为何只把数组的行数作为函数的形参,而列数却内置在函数体内,如下: 假设声明了下列数组: int ar1[5][4]; int ar2[100][4]; int ar3[2][4]; 可以用sum2d()函数分别计算这些数组的元素之和,之所以能,是因为这些数组的列 阅读全文
posted @ 2022-05-02 21:00 星雨boy 阅读(397) 评论(0) 推荐(0) 编辑
摘要:指针与多维数组之间的关系 可知zippo为该数组首元素的地址,在本例中,zippo的首元素是一个内包含两个Int值的数组,所以zippo是这两个int值的数组的地址。下面进行分析: 因为zippo是数组首元素的地址,所以zippo的值和&zippo[0]的值相同。而zippo[0]本身是一个内包含两 阅读全文
posted @ 2022-04-30 17:22 星雨boy 阅读(109) 评论(0) 推荐(0) 编辑
摘要:当编写一个处理基本数据类型的函数时,要选择是传递相应类型的值还是对应指针。通常都是值传递,只有程序需要在函数中改变数值是,才会传递指针。但对数组来说别无选择,必须使用指针!因为这样效率最高。如果按值传递来传递指针,则必须分配足够的空间来存储原始数组的副本,然后把原始数组的所有数据拷贝到副本中;如果把 阅读全文
posted @ 2022-04-29 13:47 星雨boy 阅读(37) 评论(0) 推荐(0) 编辑
摘要:C提供了一些基本的指针操作,下面的程序实例中演示了8种不同的操作。 赋值: 可以把地址赋给指针。例如,用数组名、带地址运算符(&)的变量名、另一个指针进行赋值。注意,地址应该和指针类型兼容,就说是不要把double类型的地址赋值给Int类型的指针。 解引用: *运算符给出指针指向地址上存储的值; 取 阅读全文
posted @ 2022-04-27 14:45 星雨boy 阅读(202) 评论(0) 推荐(0) 编辑
摘要:使用指针 或 数组作为函数参数,代码: 函数要处理数组必须知道何时开始、何时结束。sum()函数使用一个指针形参标识数组的开始,用一个整型形参表明待处理数组的元素个数(指针形参也表明了数组的数据类型)。但是这并不是给函数传递必备信息的唯一方法。还有一种方法是传递两个指针,第一个指针指明数组的开始处, 阅读全文
posted @ 2022-04-27 12:36 星雨boy 阅读(26) 评论(0) 推荐(0) 编辑
摘要:指针提供一种以符号形式使用地址的方法。因为计算机的硬件指令非常依赖地址,指针在某种程度上把程序员想要传达的指令以更接近机器的方式表达。因此,使用指针的程序更有效率,尤其是指针能有效地处理数组 我们举一个变相使用指针的例子:数组名是数组首元素的地址,所以: array == &array[0]; re 阅读全文
posted @ 2022-04-27 09:48 星雨boy 阅读(31) 评论(0) 推荐(0) 编辑
摘要:1.Hello World (1). #include <stdio.h> —— 预处理器指令 (2). int main(void) —— main()总是第一个被调用的函数; (3). printf(" ") —— 用来输出“ ”内的字符的函数; (4). retrun —— 设置代码的返回值, 阅读全文
posted @ 2021-04-04 16:42 星雨boy 阅读(130) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示