




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言最重要的知识点复习资料!总体上必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是它的地址.4)bit是位,是指为0或者1。 byte 是指字节, 一个字节 = 八个位.5) 一定要记住 二进制 如何划成 十进制。概念常考到的:、编译预处理不是C语言的一部分,不再运行时间,占编译时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。、每个C语言程序中main 函数是有且只有一个。、在函数中不可以再定义函数。、算法的是一定要有输出的,他可以没有输入。、break可用于循环结构和switch语句,continue只用于循环。、逗号运算符的级别最低。第一、二章 C语言基础及简单程序设计1. c语言由什么构成;(函数:一个C语言程序由一个至多个函数组成,)2. main()是主函数,该函数既是入口又是出口(一个入口,一个出口)3. 数据类型:基本数据类型(整型,字符,实型, 枚举型),占用内存的字节数,表示范围4. 常量:123,0101(没有8和9), 0x41, 1,-2.30, -1.2E+55. 在一个字节内,字符通整型,整型通字符6. 合法的用户标识符考查:合法的要求是由字母,数字,下划线组成,并且第一个必须为字母或则是下划线。关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。7. 实型数据的合法形式:考试口诀:e前e后必有数,e后必为整数。.2.333e-1 就是合法的,且数据是2.33310-1。8. 字符和字符串数据的合法形式:: 1 是字符占一个字节,1是字符串占两个字节(含有一个结束符号)。0 的ASCII数值表示为48,a 的ASCII数值是97,A的ASCII数值是65。9. 转义字符的考查(p28):转义符: n, 0, ddd, xdd等10. 强制类型转换: 一定是 (int)a 不是 int(a),注意类型上一定有括号的。 注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。 11. 自加、自减表达式:假设a=5,+a(是为6), a+(为5);运行的机理:+a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个+a表达式的数值为6,而a+是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中。 进行了+a和a+后在下面的程序中再用到a的话都是变量a中的6了。考试口诀:+在前先加后用,+在后先用后加。12. 逗号表达式:优先级别最低 ;表达式的数值逗号最右边的那个表达式的数值。如(2,3,4)的表达式的数值就是4。13. 位运算的考查:口诀:先转二进制再运算总的处理方法:(先把十进制变成二进制再变成十进制)。例1:char a = 6, b;b = a2; 这种题目的计算是先要把a的十进制6化成二进制,再做位运算。例2:在没有舍去数据的时候,右移一位表示除以2。14. % 符号两边要求是整数。不是整数就错了。15. 变量:变量的命名规则满足标识符的命名规则,区分大小写,关键字(p7)除外,变量的定义一般都要放在函数或程序的开头位置(即先定义后使用)16. 分号: 表示一个语句结束17. 变量的定义: 类型名 变量名列表; (不同的类型要写成两句), 定义的时候给值成为变量的初始化,初始化的时候不能连等(如 int a=b=c=1;是错的! int a,b,c; a=b=c=1;是对的)。18. 变量的赋值: 变量名=表达式 或 变量名复合赋值运算符表达式 (复合赋值运算符:+=,*=,=,.), 如: xyz+2=c行吗?不行(赋值表达式左边只能是变量)!赋值的时候可以连等。19. 输入一个字符: x=getchar(), putchar(x), 有这两个函数及FILE时一定要加上#include /标准输入输出的头文件包含20. getch(), 表示暂停程序运行,可直接查看结果,否则运行完后不显示结果(需按ALT+F5)。21. printf(xxxxxxxxxxxxxxx); 或 printf(格式控制符, 变量列表);变量列表不加&22. scanf(格式控制符, 地址列表), 地址列表可为数组名、指针变量名及普通变量名(普通变量名前要加加&)。23. printf(%m.nf, 32.6789)24. scanf的格式控制符中,除了逗号,一般不加其他字符;一定要记住,有逗号时输入要加逗号, 否则:数据用空格隔开,字符连着输入; 没有%m.nf的写法, 只有%mf的写法,float型用%f, double型用%lf, long double用%Lf25. 不同类型的数值型数据进行混合运算不同类型的数值型数据进行混合运算时, 先要把低数据类型向高数据类型转换, 成为同一类型后才进行运算。横向箭头表示必须进行的转换。逗号运算符是最低的运算符常量不能+、-;例:b=(a=1,a+,a+), 又例:b=(a=2)+(a=3),又例:a=1;b=(+a)+(+a) =与=的区别(赋值和等号)26. 在C语言中,对于逻辑运算,非零的数(不管实数还是整数)都认为是真的,真的就是1,假的就是0;27. 关系运算的结果是逻辑值(真为1假为0)。28. 运算符:运算符的优先序(p246):成单算移关于,异或逻条赋逗。运算符的结合性(p246):条件、单目、赋值运算符。(printf输出也是自右而左运算) 所有运算符成员运算:(), ,-,结构体成员.) 单目运算:(!,-,+,-,取值*,取址&,位取反) 算术运算:(*,/,%)级别高于(+,-) 位移运算:() 关系运算:(,=,=)级别高于(=,!=) 位与运算:(&) 位异或运算:() 位或运算:(|) 逻辑运算:(&)级别高于(|) 条件运算:(? :) 赋值算:(=,+=, . ,=,&=,|=,=) 逗号运算:(,)例如.以下程序的运行结果是struct st int n; float x;*p;void main() struct st arr3=10,5.6,12,7.1,14,6.7; p=arr; printf(“%d n”,+p-n);p+; printf(“%d,%.2f n”,p-n,p-x);A) 12 B) 11 C) 11 D)12 12,7.10 10,5.60 12,7.10 14,6.70第三、四章 选择和循环结构1. C程序一般采用自顶向下的编写格式, 模块化(函数)2. C程序结构有三种: 顺序, 选择(分支), 循环3. : 用在函数, 或复合语句4. 分支结构(或选择结构)if结构和switch结构. if分支结构单分支: if(表达式) 语句;或if(表达式) 语句组双分支: if(表达式) 语句1; else 语句2;多分支if: if(表达式1) 语句1; else if(表达式2) 语句2; . else if(表达式n-1) 语句n-1; else 语句n;. 多分支switch: switch(x) case x1: 语句1;break; . case xn: 语句n; break; default: 语句; break; 例:main() int c; while(c=getchar()!= n) switch(c-2) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default: putchar(c+2); break; printf(n);当输入:247,程序的输出结果是( )。 (A) 689 (B) 6689 (C) 66778 (D) 66887switch总结:l 其语义是:先计算出表达式的值,用此值与哪个case后的常量表达式的值相一致,则执行那个case后的语句组,如果语句组后有break语句则直接退出switch结构,如语句组执行后没有break语句则继续执行后续case后的语句组,直到遇到break语句退出switch结构,如没有break语句则会执行后续所有case或default后的语句组再退出switch结构。l 若计算出表达式的值与case后的所有常量表达式的值都不同则只执行default及之后的语句组一直执行到最后(若遇break则终止退出switch结构),如没有default语句则直接退出switch结构。5. 循环语句: (1) for(表达式1; 表达式2; 表达式3) 或 for(表达式1; 表达式2; 表达式3) 循环体语句组; 循环体语句; . break; /*用于结束当层循环,跳到当层循环后面的语句。*/ . continue; /*用于结束当次循环,跳过当次循环后面的语句,进入下次循环。*/ . (2) while(表达式) while(表达式) 循环体语句组; 循环体语句; . break; . continue; . (3) do 循环体语句组; . break; . continue; . while(表达式);例: for (i=1; i=10; i+) for (i=1; i=10; i+) if ( i%2=0 ) break; if ( i%2=0 ) continue; printf(“%d”, i); printf(“%d”, i); 6. 循环嵌套: 从外循环进来,内循环结束后,再到外循环,如此反复,直到外循环结束) x=0; 或 x=0; for(i=1; i=2; i+) for(i=1; i=2; i+) for(j=1; j=i; j+) j=1; x+=i*j; while(j=i) x+=i*j; j+; 7. break可用于switch和循环语句, 一个break只退出一层; 而continue只对循环有效8. 记住:质数的判断,斐波那契数列, 辗转相除法,求数列的和(有正符号如何处理?置标志位)循环总结: for 循环与 while 循环类似,属于先判断后执行; do while,属于先执行后判断 for 语句中有三个表达式:表达式1通常用来给循环变量赋初值;表达式2通常是循环条件;表达式3用来更新循环变量的值 for 语句中的各个表达式都可以省略,但要注意分号分隔符不能省略 如果省略表达式2和表达式3需要在循环体内设法结束循环,否则会导致死循环 break 语句用在循环中时,可以直接终止当前循环,将控制转向循环后面的语句 continue 语句的作用是跳过循环体中剩余的语句而执行下一次循环 嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内第五章 函数1. 系统函数:数学类函数(math.h),输入输出函数(stdio.h),字符串类函数(string.h)2. 自定义函数:格式类型名 函数名(形式参数列表) 函数体 3. 不写函数类型名默认为整型4. 如果函数类型名为void表示无返回值函数(不写return)声明5. 如果调用函数写在被调函数之前,且被调函数类型名不是整型(或字符型),则在调用函数中或调用函数之前应该先声明,如何声明?声明: 类型名 函数名(形式参数列表);6. 函数的递归:直接或者间接调用自身。(如阶乘)7. 全局变量:在函数外定义的变量,如果定义时没给值,默认为08. 局部变量:在函数内定义的变量、形式参数、复合语句中定义的变量,如果没给具体的值,该值不确定9. 对于全局变量和局部变量主要观察在函数中是否被重新定义,若全局变量和局部变量同名,则自动屏蔽掉全局变量。10. 函数调用时,实参向形参传递:(1) 按值传递:形参的变化不会改变实参的变化。(若有返回值将值带回,否则带回控制流,函数的返回值类型与函数类型一致);(2) 按地址传递:形参的变化就会有可能改变实参的变化。(3) 数组传递,通常就把数组名及数组元素传过去11. 如果一个函数名为:fun(x),严禁出现:fun(x)=, 不管递归与否(满足标识符命名)12. return y; 或return (y);不要写成 return y1, y2;13. 静态变量: static int x; (1) 没给值,默认为0; (2) 始终占用内存,其值会保留下来(即赋值一次,不再重新赋值,保留上次运行结果) 静态变量举例 eg:以下程序的运行结果是( C )。fun3(int x) main() static int a=3; int k=2,m=1,n; a+=x; n=fun3(k); return a; n=fun3(m); printf(%dn,n); A、3 B、4 C、6 D、9 14. 宏定义:#define 标识符 字符串,宏一定要先替换后计算分带参和无参宏定义 无参宏定义 如#define P x*x /表示碰到P时用x*x替换带参宏定义 如#define P(x) x*x /表示碰到P(x)时用x*x替换 无参宏定义举例 若有定义:#define N 3+2,则表达式N*2的值为( B )。A 、5 B、 7 C、10 D 、0解释:N*2=3+2*2=3+4=7。 带参宏定义举例 以下程序运行后输出结果是( B ) 。#define MIN(m,n) mn?m:nmain() int a=3,b=5,c;c=2*MIN(a,b);printf(%d,c); A、3 B、5 C、6 D、10解释:c=2*MIN(a,b)=2* ab?a:b2*35?3:5。第六章 数组1 一维数组的定义格式为:类型说明符 数组名常量表达式;例如: int a10; 常量表达式可以是整型常量或字符常量或枚举值或符号常量表达式(注意不能包含变量). 例如,下面这样定义数组是不行的: 举例: int n; scanf(“%d,&n); int an; int k,M=5, ak,bM; /* 不能用变量说明数组大小*/ float a0;/* 数组大小为0没有意义 */ int b(2); /* 不能使用圆括号 */2 数组元素下标可以是整型常量、变量、变量或整型表达式。3 C语言规定,下标的最小值是0,最大值则是数组大小减1 。eg:m8中,表示数组m有8个元素,下标从0开始一直到7。这8个数组元素分别是:m0、 m1、 m2、 m3、 m4、 m5、 m6、 m7,注意没有m8。4 对一维数组的初始化赋值(1)可以只给部分元素赋初值。没有赋值的元素:对于数值型数组,自动赋初值为0;对字符型数组,自动赋初值为空字符。(2)只能给元素逐个赋值,不能给数组整体赋值。int m5=2,2,2,2,2; 不能写成: int m5=2;(3)如果给全部元素赋值,则在数组说明中,可以不给出数组元素的个数,其长度等于初值表中数组元素的个数。 int m=1,2,3,4,5;5 二维数组元素的引用 形式: 数组名下标1下标2;6 二维数组元素的初始化(1) 分行初始化:存储类型符 数据类型 数组变量名行常量表达式列常量表达式 第0行初值表,第1行初值表,最后1行初值表;Eg:若有定义:int s34=1,2,0,3,4,5;则s21的值为( B )。 A. 3B. 4 C. 0 D. 1(2) 省略一维大小:存储类型符 数据类型 数组变量名行常量表达式列常量表达式 初值表 ; Eg:int a4=1,2,3,4,5,6,7,8,9,10,11,12; printf(%dn,a12);A. 2 B. 3C. 6D. 77 字符数组的定义格式:char 数组名常量表达式;8 在c语言中,没有专门的字符串变量,通常是用一个字符数组来存放一个字符串,由于字符串总是以0作为串的结束标志,因此当把一个字符串存入一个数组时,也把结束符0存入数组,并以此作为该字符串结束的标志9 C语言允许用字符串的方式对数组做初始化赋值。有两种方式:(1)按单个字符的方式赋初值,其中必须有一个字符是字符串的结束标记(但字符数组可以不包括0) 。 如char s=1,2,3,0;10 (2)直接在初值表中写一个字符串常量。如char s=“123”;可以省略 char s=1,2,3,0; char s=“123”; char s=“123”;11 设已定义char s =NameAddress023n;,则字符串所占的字节数是( B )。A.19 B. 16 C. 18 D. 1412 字符串的常用串函数 strlen函数测试字符串长度 格式: strlen(字符数组); 功能:测试指定字符串的实际长度(不含字符串结束标志0),并返回字符串的长度其中,函数的参数可以是字符型数组名或字符串常数,函数的返回值是字符串的长度。strlen得到的是有效字符的个数(不包括0)sizeof得到的是整个数组的长度(包括0). strcat函数字符串连接函数格式: strcat(字符数组1,字符数组 2); 功能:把字符数组2中的字符串连接到字符数组1中字符串的后面,同时删去字符串1的串标志0,组成新的字符串。该函数返回值是字符数组1的首地址 . strcmp函数字符串比较函数格式:strcmp(字符串1,字符串2);功能:字符串1和字符串2可以是字符型数组名或字符串常量。按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果 . strcpy函数字符串拷贝函数格式: strcpy(字符数组1,字符数组2);功能:把字符数组2中的字符串拷贝到字符数组1中。字符串结束标志0也一同拷贝。字符数组2也可以是一个字符串常量,这时相当于把一个字符串赋予一个字符数组 注意:字符数组1必须定义的足够大,以便能容纳被复制的字符串,字符数组1的长度不应该小于字符串2的长度;字符数组1必须写成数组名形式,字符数组2可以是字符数组名,也可以是一个字符串常量;有时只需要复制字符数组2中前面若干个字符,这些用strcpy函数也能实现。如:strcpy(m1,m2,3)表示将m2前面3个字符复制到m1中,从而取代m1中最前面的3个字符。13 冒泡排序、直接排序、交换排序14 杨辉三角、矩阵转置(矩阵转置只要循环一半就可以)。15 一维数组倒序存放、矩阵转置只要循环一半就可以第七章 指针n 本章主要内容:指针的概念、定义和引用、指针与函数、指针与数组、指针与字符串、指针数据类型小结 1. 指针变量的本质是用来放地址,而一般的变量是放数值的。int *p 中 *p和p的差别:*p可以当做变量来用;*的作用是取后面地址p指向的数值,p是当作地址来使用。*p+ 和 (*p)+的之间的差别:改错题目中很重要*p+是 地址会变化;(*p)+ 是数值会要变化。2. 指针变量的定义:一般形式为:类型符 *指针变量名;如:int *p; 3. 指针变量的引用。两种基本的指针运算: &:取变量的地址 * :指针运算符(或称“间接访问”运算符)4. 指针变量作函数参数例7.3 用函数实现两个变量的交换void swap(int *p1,int *p2)int *t;t=*p1;*p1=*p2;*p2=t;main()int a=5,b=9;swap(&a,&b);printf(“a=%d,b=%dn”,a,b); 5. 指针函数(函数的返回值为指针)一般定义为:类型符 *函数名(参数表) 例7.4 把两个数中的最大值设为0int *max(int *q1,int *q2) return *q1 *q2 ? q1 : q2;main() int x=5,y=9,*p;p=max(&x,&y);*p=0;printf(x=%d,y=%dn,x,y); 6. 函数指针(用一个指针变量存储一个函数入口地址,即指向函数,这样的指针称函数指针). 定义形式为:类型符 (*函数指针变量)(); 如:int (*p)(); . 使函数指针指向一个函数,一般的格式为:函数指针变量=函数名;如:p=max; . 调用函数。一般格式为: (*函数指针)(实参表) 如:c=(*p)(a,b); 例7.5 通过函数指针调用函数 int max(int x,int y)return xy?x:y;int min(int x,int y)return xy?x:y;main()int a=5,b=9,c,d;int (*p)(); /定义函数指针p=max; /指向函数c=(*p)(a,b); /调用函数p=min; d=(*p)(a,b);printf(“Max=%d ,Min=%dn”,c,d); 7. 指针与数组的关系一个变量有地址,一个数组包含若干个数组元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址,这个地址就可以用指针来实现存储。如有:int a5, *p,*q; p=&a0; q=&a2;*p=5;*q=8; 则a0和a2值分别为5和8。8. C语言规定:数组名代表数组的首地址,也就是第一个元素a0的地址。因此: a &a0。 若: p=a;/* 或写成p=&a0; */则: p+1 &a1 *(p+1) a1 p+i &ai *(p+i) ai9. 引用一个数组元素,可以用下标法或指针法。 通过数组的起始地址计算数组元素的地址 ,即*(a+i) 或*(p+i) 形式。 用指针变量处理数组元素 ,即p+ 形式: main()int a5=3,8,9,2,6,i,*p;p=a;for(i=0;i5;i+)printf(“%d “,*p); p+; 【例7.5 】指针运算符“*”与增1运算符“+”同时作用于一个指针变量的情况。main()int i, a= 11, 22, 33, 44, 55, 66 , *p=a;printf(%3d, (*p)+); 11printf(%3d, *p+); 12printf(%3d, *+p); 33printf(%3dn, +*p); 34for(p=a; pa+6; p+) printf(%3d,*p); 12 22 34 44 55 66printf(n);getch();2、通过指针引用二维数组元素(1)二维数组和数组元素的地址int a34= 1, 2, 3, 4 ,6, 7, 8, 9,11, 12,13,14 a0 a1 a2则 a &a0, a+1 &a1, a+2 &a2对于一维数组名为a0,则a0 &a00, a0+1 &a01.所以第0行第1列的地址表示为a0+1. 所以ai+j是第i行第j列元素的地址 &aij,又ai 等价于 *(a+i)所以在二维数组里*(a+i)+j和ai+j都表示地址。 (2) 通过地址访问二维数组假设有如下定义: int a35, i, j;则二维数组a中的任一元素aij,可以用下述表达式之一来引用表示:. *(ai+j)由上述知ai+j是第i行第j列元素的地址,因此*(ai+j)与aij等价. *(*(a+i)+j) , *(a+i)+j也是第i行第j列元素的地址,因此*(*(a+i)+j)与aij等价. (*(a+i)j,相当于先取*(a+i)+j地址,再取其内的值,所以与aij等价. *(&a00+5*i+j) 由于每行个元素,&a00+5*i+j就是第i行第j列元素的地址,因此*(&a00+5*i+j)也与aij等价*(&a00+5*i+j) *(a0+5*i+j) *(*a+5*i+j) aij(3) 通过指向元素指针访问二维数组 如: int a35, i, j, *p; p=&a00; 或 p=*a; 或 p=a0; 则 aij 等价于 *(p+i*5+j) 等价于 pi*5+j10. 数组名作函数参数的指针解释例7.7 对形参数组改为指针。int array_max(int x ,int n) int i,m= x0 ;for(i=1;in;i+)if(m xi )m= xi ;return m;main() int a =8,7,55,23,49,max;max=array_max(a,5);printf(“Max=%dn”,m); 11. 指针数组一般说明形式为:类型符 *数组名数组大小; 如:int *p5; 例7.8 指针数组的简单使用main()int a5=1,3,5,7,9;int *num5,i;for(i=0;i5;i+)numi=&ai;for(i=0;i5;i+)printf(“%d “,*numi); 12. 多级指针有:int a,*p=&a; 若使:q=&p; 则q是就指向指针变量的指针变量,称q为二级指针。二级指针定义的一般形式为:类型符 *指针变量名; 如:int *q;则:a=5; 或*p=5; 或*q=5; 结果相同。同样可以有三级、四级指针等等,我们把二级及二级以上的指针称为多级指针。例7.9 数组的输出main()int a5=1,3,5,7,9;int *b5,i,*p;for(i=0;i5;i+) bi=&ai;p=b;for(i=0;i5;i+) printf(“%d “,*p+); 13. 指针与字符串 字符串的表示形式 char 字符数组名数组元素个数如有:char str80=“China”, *p=str;printf(“%s”,str); printf(“%s”,p); printf(“%s”,”China”); 用%s输入/输出字符串时,只需要知道字符串的开始地址即可。使p指向字符串的开始地址,可写成: char *p=”China”; 14. 字符指针作函数参数例7.11 将例7.10改用函数完成int StrLen(char *s) int n=0; while(*s+) n+; return n;main( )char str =”abc”,*p;int len;p=str; len=StrLen(p);printf(“%s的长度为%dn”,p,len); 运行结果:abc的长度为315. 返回字符串的函数例7.13 改写字符串复制函数char *StrCopy(char *str1,char *str2) char *p=str1; while(*str1=*str2)!=0) str1+; str2+; return p;main() char s180,s2 = “abc”; printf(“复制之后的字符串:%sn”,StrCopy(s1,s2); 复制之后的字符串:abc 16. 字符指针数组例7.14将若干字符串输出main()char *str =“Word”,”Excel”,”Outlook”;int i;for(i=0;i3;i+)printf(“%sn”,stri); 例7.15使用多级指针完成若干字符串输出main()char *str =“Word”,”Excel”,”Outlook”;char *p;for(p=str;p第一行 a1 4 5 6 第二行 a2 7 8 9 第三行步骤二:这样作题目间很简单:*(a0+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a01元素,所以是。*(a1+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是 a12元素,所以是6。一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单。数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写int a=1,2 合法。int a4=2,3,4合法 。但int a4=2,3,4非法。16 二维数组中的行指针int a12;其中a现在就是一个行指针,a+1跳一行数组元素。 搭配(*)p2指针 a0,a1现在就是一个列指针。a0+1 跳一个数组元素。搭配*p2指针数组使用还有记住脱衣服法则:a2变成*(a+2)a23变成 *(a+2)3再可以变成*(*(a+2)+3)这个思想很重要!17 不能对字符数组整体赋值,而字符指针允许整体赋值18 指针p可以p+(后移)或p-(前移)或p+i,而数组名a只能用,a+i(注意一维数组和二维数组的区别)19 两个地址(指针)可以比较大小,后面大前面小;可以相减表示差几个元素20 对字符数组或字符串的操作一般用:while(*s) 或while(si) 或for(p=a; p成员名(指针引用); (*结构指针).成员名(将指针转化为名字引用);4 结构变量占用内存情况结构变量的各个成员分量在内存中占用连续存储区域,所占内存大小为结构中每个成员的占用内存的长度之和。5 联合类型(union)(1) 表示法同结构类型(2) 首地址起共用(3) 允许对第一个成员赋值(4) 共用体变量任何时刻-只有一个成员存在(5) 共用体变量定义分配内存,长度=最长成员所占字节数(即字节数取最大的)(6) 共用体变量的定义形式有三种(类似结构体变量的定义)6 枚举类型enum weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat;(1) 枚举型仅适应于取值有限的数据。(2) 取值表中的值称为枚举元素,枚举元素是常量。在编译器中,按定义的顺序取值0、1、2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版数学六年级下册《练习五》具体内容及教学建议
- 长沙医学院《兼并与收购》2023-2024学年第二学期期末试卷
- 手足口病合并肺炎护理
- 山东省日照市岚山区2025届数学五年级第二学期期末达标检测试题含答案
- Web即时通讯系统课程
- 湖南三一工业职业技术学院《物流分析与设施规划》2023-2024学年第二学期期末试卷
- 潍坊护理职业学院《企业文化研究》2023-2024学年第二学期期末试卷
- 常德职业技术学院《化工制图与CAD实验》2023-2024学年第二学期期末试卷
- 西藏民族大学《实验室安全与规范》2023-2024学年第二学期期末试卷
- 广安职业技术学院《教学设计团体操创编理论与实践》2023-2024学年第二学期期末试卷
- 2025年河南经贸职业学院单招职业技能测试题库完整版
- 糖尿病酮症酸中毒患者的护理查房
- 2025年河南经贸职业学院单招职业技能测试题库往年题考
- 企业电动叉车充电安全管理办法
- 养老服务中心经济效益分析
- 网络周期窃取演变-洞察分析
- 2025年度货车司机招聘广告发布合同3篇
- 基于几类机器学习模型预测肥胖成因的分析比较
- 医疗质量与安全管理和持续改进评价考核标准
- 2025年中国联通招聘笔试参考题库含答案解析
- 2025年度科室质控方案计划
评论
0/150
提交评论