自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 C程序设计语言 p115,运算符的优先级

在所有运算符中,下面四个优先级最高,即 "." "->" "()" " []",他们同操作数的结合也最紧密。*p->str++:读取str指向的值后,str再自增。(P++)->len:先对len执行操作,再p自增。*p++->str:读取str指向的值后,p自增。(*p->str)++:将str指向的值自增。++p-> len:增加len的值,而非p。*p->str:读取str指向的值。

2023-05-28 14:59:51 72

原创 C程序设计语言 p105,一些复杂声明

char (*(*x[3])( ))[5] :x是一个指针数组,x[3]是一个指向函数的指针,函数的返回值是一个指针,该指针指向array[5],array[5]是char类型。char (*(*x( ))[ ])( ) :x是一个函数,其返回值是一个指针,该指针指向一个一维指针数组,指针数组里每一个指针,指向一个函数,函数是char类型。int (*daytab)[13] :daytab是一个指针,指array[13]void *comp( ) :comp是一个函数,其返回值是一个指针。

2023-05-27 18:31:07 61

原创 C程序设计语言 p98,练习5-9

用指针方式代替数组下标方式改写函数day_of_year和month_day。

2023-05-26 13:17:44 75

原创 C程序语言设计 p96,二维数组作为参数传递给函数

f(daytab[2][13]) 或 f(day[][13]) 或 f((*daytab)[13]),注意,*daytab必须加上圆括号,因为中括号的优先级更高,加上圆括号才能表示这是一个指针,指向一个包含13个元素的一维数组,若不加圆括号,则表示这是一个有13个元素的一维数组。如果将二维数组作为参数传递给函数,则在函数的参数声明中必须指明数组的列数。

2023-05-25 16:17:04 67

原创 C程序设计语言 p95,练习5-7

重写函数readlines,将输入的文本行存储到由main函数提供的一个数组中,而不是存储到调用alloc分配的存储空间中。

2023-05-25 15:55:54 76

原创 C程序设计语言 p92,练习5-4

编写函数strend(s,t),如果字符串t出现在字符串s的尾部,则返回1,否则返回0。

2023-05-25 14:27:41 57

原创 C程序设计语言 p89,指针的算术运算的四种合法情况

2⃣️指针同整数之间的加法或减法运算,如 p += n,表示让p指向后面第n个元素。注意,n将根据p指针的类型进行缩放,如p是int型,则n要按4倍来计算。3⃣️同一个数组之间不同指针的比较运算或减法运算,如p,q都是指向a[ ]中元素的指针,则p,q可以进行比较或减法运算,注意加法可能会超出数组的最大界限。4⃣️可将指针赋值为0或将指针与0比较,指针和整数之间不能进行比较,但0是例外,c语言中 0永远不是有效的地址,故可用指针为0表示特殊情况。1⃣️同类型指针的赋值运算,如 int *p,*q;

2023-05-25 13:02:14 125

原创 C程序设计语言 p83,练习5-1

5-1 在上面的例子中,如果符号+或-的后面紧跟的不是数字,getint函数将把符号视为数字0的有效表达方式。修改该函数,将这种形式的+或-号重新写回到输入流中。

2023-05-25 11:48:49 46

原创 C程序设计语言 p80,一元运算符*&优先级

ip += 1 等同于 ++*ip 等同于(*ip)++;注意,(*ip)++的圆括号不能去除,否则是ip的值自增,因为*、++这样的一元运算符都是从右至左书序结合的。

2023-05-24 18:14:15 133

原创 C程序设计语言 p75 练习4-12

注意对于终止符的处理,在每次递归中加入终止符,若递归未结束,则原先的终止符会被覆盖。

2023-05-18 16:42:43 49

原创 C程序设计语言 p58,4.1函数基本知识

注意,getline函数用于保存每行字符,并返回行长;strindex函数用于匹配字符段,并返回t在s中的位置i。编写一个程序,将输入中包含特定字符串的各行打印出来,并返回行数。

2023-05-12 18:56:50 37

原创 C程序设计语言 p52,练习3-3

编写函数 expand(s1, s2),将字符串 s1 中类似于 a-z 一类的速记符号在字符串 s2 中扩展为等价的完整列表 abc…该函数可以处理大小写字母和数字,并可以处理 a-b-c、a-z0-9 与-a-z 等类似的情况。作为前导和尾随的-字符原样排印。注意,在s2字符串中,扩展成完整列表时利用字符C的自增完成,更为简洁。

2023-05-11 15:53:25 60

原创 C程序设计语言 p40,练习2-6、2-7

练习2-7: 编写一个函数invert(x,p,n),该函数返回对x执行下列操作后的结果值,将x中从第p位开始的n个(二进制)位求反(即,1变成0,0变成1),x的其余各位保持不变。练习2-6:编写一个函数setbits(x, p, n, y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(注意:若用0去异或,则得其本身,因为0和0异或得0,0和1异或得1。)位设置为y中最右边n位的值,x的其余各位保持不变。

2023-05-10 15:57:15 58

原创 C程序设计语言 p39,位运算综合

getbits(x,p,n)返回从右边第p位开始向右数n位的字段,例如getbits(x,4,3)返回x中第4、3、2位字段。最后进行按位与运算,即 0000 1100 & 0000 0111 得结果 0000 0100,则返回字段是100,符合要求。①、x >> (p=1-n)表示将x左移,使希望获得的字段位于x的最右端,即 x = 0000 1100。②、~0

2023-05-09 19:01:07 59

原创 C程序设计语言 p39,区分位运算符& | 和逻辑运算符&& ||

该代码将x中对应于SET_ON为1的位置的二进制位置1。如x = 0001 SET_ON= 0110 则运行完后 x = 0111。2、表示 按位与(AND)运算,即当x = 1,y = 2 时,x & y = 0。1、当x = 1,y = 2 时,x && y = 1。1、当x = 0,y = 1 时,x || y = 1。该代码可将除了低7位的二进制位外的其他各位均置为1。2、表示 按位或(OR)运算。

2023-05-09 18:29:14 44

原创 C程序设计语言 p38,2-5

编写函数any(s1,s2),将字符串s2中的任意字符在字符串s2中第一次出现的位置作为结果返回,如果s1中有不包含在s2中的字符,返回-1。注意,n是s2中字符的位置,若该字符在s1中不存在,则返回-1,否则返回s1的位置下标。

2023-05-09 18:02:58 35

原创 C程序设计语言 p38,2-4

创建squeeze(s1,s2)函数, 将字符串S1中任何与字符串S2中字符匹配的字符都删除。注意,内层for循环结束后再加终止符。

2023-05-09 17:32:28 35

原创 利用位权法,十六进制转十进制

例如:ox123,其转换过程为,0*16+1 = 1 -> 1*16 + 2 = 18 ->18*16+3 = 291(即前两位视为一个整体18,放在一个位权上)。该方法对其他进制转换同样适用,仅需修改位权。

2023-05-09 12:06:18 245

原创 C程序设计语言 p34,在ASCII中,字符以数字存储,故可以进行运算

注意,若引用头文集 ,则可用函数 tolower(c) ,来将大写字母c转换为小写字母。在该例中,'a'、 'A'均可视为相应数值。

2023-05-09 11:34:08 41

原创 C程序设计语言 p30,字符常量与只有一个字符的字符串

'x'表示一个整数,其值是字母x在ASCII中对应的整数。"x"表示一个字符(即字符x)以及一个结束符"\0"。

2023-05-08 19:01:18 54

原创 C语言程序设计 p29,转义字符

xhh 十六进制数。

2023-05-08 18:37:34 43

原创 C程序设计语言 p22,1-16程序改进

当输入的文本行超过MAXLINE时,len的最大值就是MAXLINE,此时,我们需要调整getline函数,让前MAXLINE-2个字符全部存入,,同时继续计算文本行长度,从而解决len最大值时MAXLINE的问题。引入变量 j 来进行文本行储存,用变量 i 来记录文本行最大长度。

2023-04-26 18:32:52 67 1

原创 C程序设计语言 p13,练习1-9将输入的多个连续空格用一个空格代替

当用C接getchar的值时,无法手动让C指向缓冲区下一个字符,可以增加flag变量,通过空语句,实现当C指向后续空格时,不做任何操作。其中,flag为0表示是第一个空格,flag为1表示非第一个空格,flag初始为0,防止空格开头出现问题。

2023-04-26 16:24:10 151 1

原创 C程序设计 p10,接getchar返回值易错

在没有输入时,getchar会返回一个特殊值,即EOF,当我们定义C来接getchar的返回值时,C要定义为int型而非char型,从而确保C可以储存文件结束符EOF。= EOF 等价于 c = (getchar()!注意:若赋值表达式两边的括号不能省略,因为!= 的优先级高于 =,即。

2023-04-26 15:45:25 110 1

原创 C程序设计语言 p5,整数除法易错

若用如下代码,则结果永远为0,因为5/9结果恒0。

2023-04-26 15:03:08 105 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除