- 博客(47)
- 收藏
- 关注
原创 其他字符串函数
char*strcpy(char*restrict s1,const char*restrict s2);该函数S2指向的位置,返回值是s1 char*strncpy(char*restrict s1,const char *restrict s2.该函数把s2指向字符串拷贝至s1只想的位置,拷贝字符数不超过nchar*stract(char*restrict s1,const char*...
2019-05-30 21:50:22 157
原创 自定义函数的输入与输出
不一定非要使用C库中的标准函数,如果无法使用或者不想使用他们,完全可以在你GETCHAR()和PUTCHAR()的基础上自定义所需的函数,假设你需要一个类似put (),但是不会自动添加换行符的函数注意一下程序清单给出了一个这样的表达函数//put1.c--打印字符串,不添加\n#include <stdio.h>void put1(const char *string)//不...
2019-05-29 21:11:07 3955
原创 表示字符串和字符串函数
字符串输入如果想要把一个字符串读入程序,首先必须预留储存该字符串的空间,然后用输入函数获取该字符串。分配空间要做的第一件事就是分配空间,易储存稍后读入的字符串。前面提到过,这就意味着必须要为字符串分配足够的空间。不要指望计算机在读取字符串是顺便计算他的长度,然后再分配空间(计算机不会这样做,除非你比那些一个处理这些任务的函数),假设编写程序代码如下:char *name;sca...
2019-05-28 16:33:44 280
原创 表示字符串和字符串I\O
数组和指针数组形式在计算机的内存中分配为一个内涵29个元素的数组,每个元素都被初始化为字符串字面量对应的字符。通常,字符串都可以作为课执行文件的而一部分被储存在数据段中,当把程序载入内存是,也载入了程序中的而字符串,字符串出存在静态存储区,但是程序再开始运行时才会为该数组分配内存。数组和指针的区别初始化字符数组来储存字符串和初始化指针来指向字符串有何区别列入下面两个声明char...
2019-05-27 17:47:24 628
原创 字符串和字符串函数
表示字符串和字符串I/O字符串是以空字符(\o)结尾的char类型数组。在程序中定义字符串字符串字面量(字符串常量)用双引号括起来的内容称为字符串字面量,也叫哦做字符串常量。双引号中的字符和编译器自动加入末尾的\o字符,都作为字符串储存在内存中,所以''i am a symbolic stringconstant,"是字符串字面量。字符串数组和初始化定义字符串是,必须让编译...
2019-05-26 12:32:02 124
原创 复合字面量
对于数组,复合字面量列斯与数组初始化列表,前面使用括号括起来的类型名,,例如下面是一个普通的数组声明。int diva[2]=[10,20];下面创建了一个和diva数组相同的匿名数组,也有两个int 类型值(int [2]){10,20} //复合字面量注意去掉申明中的数组名,留下的int[2]既是复合字面凉的类型名初始化有数组名的数组可以省略数组的大小,复合字面量也可以省...
2019-05-25 17:35:37 602
原创 变长数组
变长数组不能改变大小变长数组中的变不是可以修改已创建数组的大小,一旦创建了变长的数组,它的大小则保持不变,这里的编制的是,在创建数组是,可以使用变量指定数组的维度以下的列子计算int类型的二维数组的所有元素之和首先要申明一个带二维边长数组参数的函数int sum2d(int rows,int cols,int ar[rows][cols]); //ar是一个变长数组VLA注...
2019-05-24 16:25:59 569
原创 指针和多维数组
我们在前面使用const创建过变量const double PI =3.14159;#define可以创建类似功能的符号常量,但是const的用法更加灵活,可以创建const 数组 const指针和指向const 的指针。我们使用最小的数组,假设有下面的声明int zippo[4][2];//内涵int 数组的数组然后数组名zippo是该数组首元素的地址,在本列中,zippo...
2019-05-23 16:51:49 277
原创 保护数组中的数据
编写一个处理基本类型int 的函数值时,要选择是传递int类型的值还是要传递指向int的指针。同常都是直接传递数值,只是程序炫耀在函数中改变该数值是,才会传递指针。对于数组别无选择,必须传递指针,因为这样做效率比较高。如果一个函数按值传递数组,则必须分配足够的空间来储存原数组的副本,然后把原数组所有的数据拷贝值新的数组中。如果把和谐数组的地址传递给函数,让函数直接处理原数组则效率要高。传递时会出现...
2019-05-22 17:26:32 317
原创 指针操作
下面的程序打印了指针的值(该指针指向的地址)、储存在指针地址上的值,以及指针自己的地址。//ptr_ops.c--指针操作#include <stdio.h>int main(void){ int urn[5] = { 100,200,300,400,500 }; int *ptr1, *ptr2, ptr3; ptr1 = urn; ...
2019-05-21 17:04:23 248
原创 函数 指针和数组
假设要编写一个处理数组的函数,该函数的返回数组中所有元素之和,待处理的是名为marbles 的int类型数组total=sum(marbles); //可能的函数调用该函数的调用圆形,数组名是该函数的收元素地址,所以实际参数marblesa是一个储存int类型值的地址,因该把它赋予一个指针形式参数,既该形参是一个指向int的指针。int sum(sum*ar); //对应函数的原...
2019-05-20 18:10:49 194
原创 数组与指针3
多维数组float rain[5] [12]; //rain是一个内涵5个数组元素的数组,每个数组元素内涵12个float类型的元素//rain.c--计算每年的总降水量,年平均降水量 和5年中每月的平均降水量#include<stdio.h>#define MONTHS 12 //一年的月份数#define YEARS 15 //年...
2019-05-19 18:08:03 123
原创 数组和指针2
初始化列表中的项数应与数组大小一致//some_date.c--部分初始化数组#include <stdio.h>#define SIZE 4int main(void){ int some_date[SIZE] = { 1492,1066 }; int i; printf("%2s%14s\n", "i", "some_date[i]"); ...
2019-05-18 18:10:43 154
原创 数组和指针1
数组数组是由数据类型相同的一系列元素组成。需要使用数组时,通过声明数组告诉编译器数组中内涵多少个元素和这些元素的类型。。普通变量可以使用的类型,数组元素都可以使用。列//一些数组声明int main(void){ float candy[365]; //内涵365个float类型元素数组 char code[12]; //内...
2019-05-17 17:39:10 135
原创 函数小结
形式:典型的ANSIC函数的定义形式为:返回类型 名称(形参申明列表)函数体形参声明列表是用逗号分割的一系列变量声明,除形参变量外,函数的而其他变量均在函数体的花括号之内声明。int diff(int x,int y) //ANSI C{//函数体开始int z; //...
2019-05-16 19:30:33 109
原创 指针简介
指针:是一个值为内存地址的变量(或数据对象)。正如char类型变量的值是字符,int类型变量的值是整数,指针变量的值是地址。在C语言中,指针有许多用法,接着会介绍指针作为函数参数使用假设一个指针变量名是ptr.可以编写如下语句:ptr=&pooh; //把Pooh 赋给ptr对于这条语句,我们说ptr指向pooh。ptr和poor的区别是ptr 是变量,&pooh是...
2019-05-15 22:55:07 150
原创 续函数2
更改主调函数中的变量有时需要在一个函数中更改其他函数的。例如,在普通的排序任务中交换两个变量的值。假设要交换两个变量的值x和y的值,x=y;y=x;这个完全不起作用,因为执行到第二行是,X的原始值被Y的原始值替换了。因此,要多些一行代码,储存x的原始值。temp=x;x=y;y=temp;上面的の行代码便可实现交换值的额功能,可以变携程一个函数并构建一个驱动程序来测...
2019-05-14 15:50:58 154
原创 续函数1
查找地址:&运算符指针是你C语言中最为重要的(有时也是最复杂的)概念之一)用于储存变量的地址,前面使用的scanf函数中就是用地址作为参数。概括地说,如果主调函数不使用return返回的值,则必须通过地址才能修改主调函数中的值。一元&运算符给出变量的存储地址。如果pooh是变量名,那么&pooh是变量的地址,可以把地址看作是变量在内存中的位置,假设有下面语句:poo...
2019-05-13 18:30:25 153
原创 续函数
使用头文件如果把main()放在第一个文件中,把函数定义在第二个文件中,那么第一个文件任然要使用函数原型。把函数原型放在头文件中,就不用在每次使用函数文件时都写出函数模型。C标准库就是这样做的,例如,把I/O函数原型放在stdio.h中,把数学函数原型放在math.h中。也可以用这样用自定义的额函数文件。另外,程序中经常使用C与处理器定义符号常量。这种定义指出村了那些包含#define 指令的...
2019-05-12 08:37:17 227
原创 递归和倒序计数
//bingary.c--以二进制形式打印整数#include<stdio.h>void to_binary(unsigned long n);int main(void){ unsigned long number; printf("enter an integer (q to quit):\n"); while (scanf("%1u", &am...
2019-05-10 19:13:34 273
原创 函数
复习函数函数是完成特定任务的独立程序代码单元。语法规则定义了函数的结构和使用方式。创建并使用简单的函数创建一个在一行打印40个星号的函数,并在一个答应表头的程序中使用该函数//letheadl.c#include<stdio.h>#define NAME "GIGATHINK,INC"#define ADDRESS "101 MEGABUCK Plaza"#de...
2019-05-08 18:06:44 216
原创 字符输入 输出和输入验证
注释重定位让你能够用键盘输入程序文件,程序需测试文件的末尾。重定向是一个命令概念,因为要在命令行输入特殊的符号发出指令。//file_eof.c--打开一个文件并显示该文件#include<stdio.h>#include <stdlib.h> //为了使用exit()int main(void){ int ch; ...
2019-05-07 18:08:52 308
原创 字符输入/输出和输入验证
单字符I/O:getchar()和putchar()缓冲区完全缓冲行缓冲//echo.c--重复输入#include <stdio.h>int main(void){ char ch; while ((ch = getchar() )!= '#') putchar(ch); return 0;}结束键盘输入文件 流和...
2019-05-06 21:43:25 209
原创 续 C控制程序语句:分支和跳转
逻辑运算符逻辑运算符 含义 && 与 || 或 ! 非 expe1和expe2是两个简单的关系表达式(如car>rat或debt==1000),那么:当且仅当expe1和expe2都为真时,exp1 && exp2才为真; 如果exp1或exp2为真,则exp1||exp2为真; 如果exp1为假,则!exp...
2019-05-05 18:11:24 165
原创 C控制语句:分支和跳转
1.if语句以下该程序读取一系列数据,每个数据表示每日的最低温度,然后打印统计的总天数和最低温度在0℃以下的天数占总天数的百分比//colddays.c--找出0℃以下的天数占总天数的百分比#include <stdio.h>int main(void){ const int FREEZING = 0; float temperature; int...
2019-05-04 18:16:31 218
原创 续C语言控制:循环
数组简介数组(array):是按顺序储存的一系列类型相同的值,如10个char类型的字符或15个int类型的值。整个数组有一个数组名,通过整数下标访问数组中单独的项或元素。列入声明 float debts[20];声明debts 还一个含20个元素的数组,每个元素都可以储存在float类型的值中。在for循环中使用数组使用返回值的循环实例1.定义函数时,确定函数的返回类型2.使...
2019-05-03 18:11:47 169
原创 续C控制语言:循环
当zeno遇到for循环//zeno.c--求序列的和#include <stdio.h>int main(void){ int t_ct; //项计数 double time, power_of_2; int limit; printf("enter the number of terms you want:"); sca...
2019-05-02 08:40:33 142
原创 C控制语句:循环
1.summing.c程序//summing.c--根据用户键入整数求和#include<stdio.h>int main(void){ long num; long sum = 0L; //把sum初始化为0 int status; printf("please enter an integer to be summed");...
2019-05-01 21:36:54 267
原创 运算符、表达式和语句
1.循环简介while循环/*shoes2.c--计算多个不同鞋码的脚长*/#include<stdio.h>#define ADJUST 7.31 //字符常量int main(void){ const double SCALE = 0.333;//const变量 double shoe, foot; printf("shoe si...
2019-04-30 21:02:16 424 1
原创 scanf()小结
1.从scanf()的角度看输入假设scanf()根据一个%d转换说明读取一个整数,scanf()每次读取一个字符,跳过所有的空白字符,直至遇到第一个非空白字符才开始读取。scanf()不断的读取和保存字符,直到读到一个非数字字符。如果遇到一个非数字字符或读取下一个字符,她便认为读到了整数的末尾。然后,scanf()把非数字字符放回输入2.格式字符串中的普通字符scanf()函数允许把...
2019-04-29 20:09:01 189
原创 如何使用scanf()
//input.c--何时使用&#include<stdio.h>int main(void){ int age;//变量 float assets;//变量 char pet[30];//字符数组,用于储存字符串 printf("enter your age,assets,and favourite pet.\n"); scanf...
2019-04-27 20:50:20 867
原创 pizza.c程序和defines.c程序
printf()语句中的%1.2f表明,结果被四舍五入为两位小数输出,输出如下:what is the radius of your pizza?6.0your basic pizza parameters are as follows:circumference=37.70,area=113.10#define指令定义字符是用单引号,定义字符串常量时用双引号 ...
2019-04-24 22:00:46 300
原创 常量和C预处理器
如何创建符号常量方法一:先声明一个变量,然后将该变量设置为所需的常量。例如float taxrate;taxrtate=0.015;这样做提供了一个符号名,但是taxrate是一个变量,程序中可能会无意间改变他的值。C语言还提供了一个更好的方案----C预处理器,预处理器用来处理变量时只需在程序顶端添加一行:#define TAXRATE 0.015在编译程序时,程序中所有...
2019-04-24 20:59:26 211
原创 strlen()函数
sizeof运算符以字节为单位给出对象的大小,strlen()函数给出字符串中的字符长度。如果使用ANSIC之前的 编译器,必须移除这一行#include<string.h> string.h头文件包含多个与字符串相关的函数原型,包括strlen().以上程序中使用了两种方法来处理很长的printf()函数。第一种方法是将printf()语句分为两行(可以在参数之间断为...
2019-04-24 17:54:31 7458
原创 字符串和格式化输入输出
字符串是一个或多个字符的序列如“Zing went the string of my heart!”双引号不是字符串的一部分。双引号仅告知编译器他括起来的是字符串,,正如单引号标记单个字符一样。Char类型数组和null字符C语言中没有专门用于储存字符串的的变量类型,字符串都被储存在char数据类型的数组中。数据由连续的存储单元组成,字符串中的字符被储存在相邻的存储单元中,每个单元储存一个...
2019-04-24 16:38:45 250
原创 前导程序 talkback.c程序
运行该程序输入结果如下:hi!what's your first name?christinechristine ,what'your weight in pounds?154well,christine,your volume is 2.47cubic feet.also,your first name has 9 letters,and we have 4...
2019-04-22 18:04:36 445 1
原创 基本数据类型
关键字:基本数据类型由11个关键字组成:Int、long 、short、unsigned、char、float、double、signed、_bool 、_complex和_imaginary。有符号型:有符号型可以表示正整数和负整数。int--系统给定的基本数据类型。C语言规定了int类型不小于16位。short或short int--最大的short类型整数小于或等于最...
2019-04-20 20:16:58 193
原创 打印浮点值 showf_pt.c程序
printf()函数使用%f转换说明打印十进制计数法的float和double类型浮点数,用%e打印指数计数法的浮点数。如果系统支持16进制格式的浮点数,可用a和A分别来代替e和E。打印long double类型要使用%lf、%le或%la转换说明。...
2019-04-20 18:25:28 434
原创 可移植类型:stdint.h和inttypes.h
该程序最后一个printf()中,参数PRId32bei定义在inttypes.h中的“d”替换,因而这条语句等价于:printf("me32=%" "d" "\n",me32)在C语言中,可以把多个连续的字符串组合成一个字符串,所以这条语句又可以等价于:printf("me32=%d\n",me32);...
2019-04-18 17:38:37 710
原创 打印short;long;long long;和unsigned类型
C语言有多种printf()格式。对于short 类型,可以使用H前缀。%hd 表示十进制显示short 类型的整数,%ho表示以八进位制显示short类型的整数。h和1前缀都可以和u一起使用,用于表示无符号类型。图例中%1u表示打印unsigned long 类型值,对于支持long long 类型的系统,%11d和%11u分别表示有符号类型和无符号类型。...
2019-04-18 17:17:25 4055
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人