随笔分类 -  C

摘要:C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数。下面的例子定义了一个函数 strlong(),用来返回两个字符串中较长的一个: #include <stdio.h> #include <string.h> char *strlong(char *str1, char *str 阅读全文
posted @ 2022-03-21 21:26 随遇而安== 阅读(120) 评论(0) 推荐(0)
摘要:在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传 阅读全文
posted @ 2022-03-21 21:24 随遇而安== 阅读(153) 评论(0) 推荐(0)
摘要:C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中 #include <stdio.h> #include <string.h> int main(){ char str[] = "http://c.biancheng.net"; int len = strlen(str), i; 阅读全文
posted @ 2022-03-21 21:22 随遇而安== 阅读(204) 评论(0) 推荐(0)
摘要:数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。以int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示: 定义数组时,要给出数 阅读全文
posted @ 2022-03-21 21:19 随遇而安== 阅读(387) 评论(0) 推荐(0)
摘要:指针变量保存的是地址,而地址本质上是一个整数,所以指针变量可以进行部分运算,例如加法、减法、比较等,请看下面的代码: #include <stdio.h> int main(){ int a = 10, *pa = &a, *paa = &a; double b = 99.9, *pb = &b; 阅读全文
posted @ 2022-03-21 21:16 随遇而安== 阅读(71) 评论(0) 推荐(0)
摘要:据在内存中的地址也称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。指针变量的值就是某份数据的地址,这样的一份数据可以是数组、字符串、函数,也可以是另外的一个普通变量或指针变量。现在假设有一个 char 类型的变量 c,它存 阅读全文
posted @ 2022-03-21 21:15 随遇而安== 阅读(328) 评论(0) 推荐(0)
摘要:计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节,char 占用 1 个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。下图是 4G 内存中每个字节的编号(以 阅读全文
posted @ 2022-03-21 21:11 随遇而安== 阅读(103) 评论(0) 推荐(0)
摘要:预处理指令是以#号开头的代码行,# 号必须是该行除了任何空白字符外的第一个字符。# 后是指令关键字,在关键字和 # 号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是本章涉及到的部分预处理指令: 指令 说明 # 空指令,无任何效果 阅读全文
posted @ 2022-03-21 21:09 随遇而安== 阅读(33) 评论(0) 推荐(0)
摘要:带参数的宏和函数很相似,但有本质上的区别:宏展开仅仅是字符串的替换,不会对表达式进行计算;宏在编译之前就被处理掉了,它没有机会参与编译,也不会占用内存。而函数是一段可以重复使用的代码,会被编译,会给它分配内存,每次调用函数,就是执行这块内存中的代码。【示例①】用函数计算平方值。 #include < 阅读全文
posted @ 2022-03-21 21:09 随遇而安== 阅读(90) 评论(0) 推荐(0)
摘要:语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实际参数”,这点和函数有些类似。对带参数的宏,在展开过程中不仅要进行字符串替换,还要用实参去替换形参。带参宏定义的一般形式为: #define 宏名(形参列表) 字符串 在字符串中可以含有各个形参。带参宏调用的一般形式为: 阅读全文
posted @ 2022-03-21 21:07 随遇而安== 阅读(427) 评论(0) 推荐(0)
摘要:#define 叫做宏定义命令,它也是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。我们先通过一个例子来看一下 #define 的用法: #include <stdio.h> #define N 100 int 阅读全文
posted @ 2022-03-21 21:05 随遇而安== 阅读(472) 评论(0) 推荐(0)
摘要:使用库函数之前,应该用#include引入对应的头文件。这种以#号开头的命令称为预处理命令。C语言源文件要经过编译、链接才能生成可执行程序:1) 编译(Compile)会将源文件(.c文件)转换为目标文件。对于 VC/VS,目标文件后缀为.obj;对于GCC,目标文件后缀为.o。 编译是针对单个源文 阅读全文
posted @ 2022-03-21 21:03 随遇而安== 阅读(161) 评论(0) 推荐(0)
摘要:如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值。C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。 形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能 阅读全文
posted @ 2022-03-21 21:00 随遇而安== 阅读(389) 评论(0) 推荐(0)
摘要:C语言有多个函数可以从键盘获得用户输入,它们分别是: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。 getchar()、getche()、getch():这三个函数都用于输入单个字符。 gets():获取一行数据,并作为字符串处理。 scanf() 是最灵活、 阅读全文
posted @ 2022-03-21 20:49 随遇而安== 阅读(351) 评论(0) 推荐(0)
摘要:在C语言中,有多个函数可以从键盘获得用户输入: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。 getchar()、getche()、getch():这三个函数都用于输入单个字符。 gets():获取一行数据,并作为字符串处理。 scanf() 是最灵活、最复杂 阅读全文
posted @ 2022-03-21 20:47 随遇而安== 阅读(310) 评论(0) 推荐(0)
摘要:在C语言中,有三个函数可以用来在显示器上输出数据,它们分别是: puts():只能输出字符串,并且输出结束后会自动换行 putchar():只能输出单个字符 printf():可以输出各种类型的数据,在前面的很多章节中都进行了介绍。 printf() 是最灵活、最复杂、最常用的输出函数,完全可以替代 阅读全文
posted @ 2022-03-21 20:42 随遇而安== 阅读(202) 评论(0) 推荐(0)
摘要:1.自动类型转换 自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。1) 将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如: float f = 100; 100 是 int 类型的数据,需要先转换为 float 类型才能赋值给 阅读全文
posted @ 2022-03-21 20:37 随遇而安== 阅读(180) 评论(0) 推荐(0)
摘要:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位置移到下一行开头 010 \r 回车(CR) ,将当前位置移到本行开头 013 \t 水平制表 阅读全文
posted @ 2022-03-21 20:29 随遇而安== 阅读(29) 评论(0) 推荐(0)
摘要:小数分为整数部分和小数部分,它们由点号.分隔,例如 0.0、75.0、4.023、0.27、-937.198 -0.27 等都是合法的小数,这是最常见的小数形式,我们将它称为十进制形式。此外,小数也可以采用指数形式,例如 7.25×102、0.0368×105、100.22×10-2、-27.36× 阅读全文
posted @ 2022-03-21 20:25 随遇而安== 阅读(259) 评论(0) 推荐(0)
摘要:在数学中,数字有正负之分。在C语言中也是一样,short、int、long 都可以带上正负号,例如: //负数 short a1 = -10; short a2 = -0x2dc9; //十六进制 //正数 int b1 = +10; int b2 = +0174; //八进制 int b3 = 2 阅读全文
posted @ 2022-03-21 20:19 随遇而安== 阅读(200) 评论(0) 推荐(0)