《C语言程序设计笔记,知识点及例题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计笔记,知识点及例题.docx(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.1 程序和程序设计第一章 程序设计根本概念程序:连续执行的一条条指令的集合称为“程序”。1.1.2 程序设计1. 确定数据结 2.确定算法 3.编码 4.在计算机上调试程序 5.整理并写出文档资料1.2 算法定义:是指为了解决某个特定的问题而实行确实定且有限的步骤。1 有穷性 2 确定性 3 可行性 4 有零个或多个输入 5 有一个或多个输出1.3 构造化程序设计和模块化构造 构造化程序由三种根本构造组成1 挨次构造2 选择构造3 循环构造12) 计算机能直接执行的程序是B 。A程序设计的任务就是编写程序代码并上机调试B程序设计的任务就是确定所用数据构造 C程序设计的任务就是确定所用算法D
2、以上三种说法都不完整A源程序 B目标程序 C汇编程序 D可执行程序13以下表达中正确的选项是( D )其次章 :C 程序设计的初步学问(11) 以下表达中正确的选项是 C 。AC 程序的根本组成单位是语句 BC 程序中的每一行只能写一条语句二级 C 语言程序设计试卷C简洁 C 语句必需以分号完毕 DC 语句必需在一行内写完(11) 以下表达中正确的选项是( C )A) C 程序中的注释只能消灭在程序的开头位置和语句的后面B) C 程序书写格式严格,要求一行内只能写一个语句C) C 程序书写格式自由,一个语句可以写在多行上D) 用 C 语言编写的程序只能放在一个程序文件中其次课:C 语言的根底学
3、问2.2 标识符,常量和变量2.2.1 标识符:定义:由字母,数字和下划线组成,并且第一个字符必需为字母或下划线的。这样的 组成就是标识符。留意:在 C 中大写字母与小字字母被认为是两个不同的字符。分类:关键字:在 C 中已经定义好了的,不能用作它用的。如 if double int 等等。预定义标识符:如 printfscanf用户标识符:用户依据自己的需求来定义的。12以下选项中,能用作用户标识符的是( C ) AvoidB8_8 C_0_Dunsigned(11) 以下选项中合法的标识符是( C )A 1-1 B11 C-11 D1(12) 以下选项中不合法的标识符是 ( C ) A)p
4、rint B)FOR C)&a D)_002.2.2 常量:定义:是指在程序的执行的过程中,其值不会被转变的量。分类:整型常量:没有小数的常量 如:391234 等等都是。实型常量:有小数点的常量如:3.93.03.字符常量:由单个字符组成的量如:ab3字符串常量:至少由一个字符组成的量如:“a” “abc”“ beijing”符号常量:符号常量的值到底是多少,这是由在来定义符号常量时来打算的13以下选项中,能用作数据常量的是 ( D ) Ao115 B 0118 C1.5e1.5 D 115L(13) 以下选项中不能作为 C 语言合法常量的是 A 。A”cd” B0.1e+6 C“a“ D”
5、011”(13)以下选项中不属于字符常量的是 ( B ) A)”C” B)“C“ C)”xCC0” D)”072”2.3 整型常量与实型常量整型常量的几个表示方法十进制数:八进制数:以 0 开头的数字,由 0-7 组成。以下合法的八进制数是A,0B,028C,-077 D,01.0十六进制数:以 0X 开头,由 0-9 和 A-F 组成。A,oxff B,0xabcC,0x11D,0x19实型常量123.4小数形式:123.4 指数形式:1.234e21. 字母 e 和 E 之前必需要有数字2. 字母 e 和 E 之后的数字必需是整数3. 字母 e和数字之间不能有空格。A,2.607E-10.
6、8103E 2-77.77456E-20.1e+61.23E1.22.2.4 变量:1. 定义:在程序的运行过程中其值可以被转变的量,就叫变量。2. 原则:变量必需先定义后使用。变量定义的过程就是给变量开拓存储单元的过程。3. 分类:整型变量:用关键字 int 来表示. short int短整型long int长整型 在内存中占 4 个字节如 123L unsigned无符号如有-200U 这就是错的。变量的定义:int a 这是定义了一个整型变量 a.实型变量:用关键字 double 或 float 来表示。float 单精度 在内存中占 4 个字节double 双精度 在内存中占 8 个字
7、节。2.2.5 算术表达式一、根本的算术运算符+ - */ %这些是双目运算符就是指操作对象有两个 留意:除%外,其它的运算符的运算对象可以是整型也可以是实型。 %的操作对象只能是整型。如 10%3=1 10.7%3 10%4.5 x%3=0+- 也可以做为单目运算。-5.4+4.9说明:1. 假设双目运算符两边运算数的类型全都,则所得结果的类型与运算数的类型一 致。如 1.0/2.0=0.51/2=02. 假设双目运算符两边运算数的类型不全都,则系统会自动进展类型转换,使两边 的类型全都后,再进展运算。1.0/2=0.53. 全部的单精度数据,在运算过程中都以双精度进展运算。 二、优先级+-
8、*/%+-由高低如(5+1)/2=?2.5.3 强制类型转换表达式格式:类型名 表达式例:int3.234=3(double)10%3=?14表达式:4-(9)%2 的值是( B )A0B3C4D5(14)设变量已正确定义并赋值,以下正确的表达式是 ( C ) A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,+yD)x=25%5.02.6 赋值表达式格式:变量名=表达式注:1.不行以颠倒左边必需是变量名,右边必需是 C 语言中合法的表达式2. 功能就是先求出右边表达式的值,然后把此值赋值给赋值号左边的变量。精准的说是把数据存入以该变量为标识的存储单元中去。a=4, a=73
9、. 结合性的优先级仅高于逗号表达式。挨次是自右向左的。如 a=2+7/34. “=“是一个赋值号,不是一个等号。5. x=y。变量的值也是可以传递和赋值的。它的意思就是将变量 Y 中的值赋值到X 中去。同样 N=N+1 也成立6. 赋值运算符的左侧只能是变量,不能是常量或表达式 a+b=c 这就是违法的7。赋值号的右边也可以是一个赋值表达式。如 a=b=7+1; 补充;表达式与语句的区分,表达式后面加一个分号就是语句。2.6.2 复合赋值表达式例:a+=3-a=a+3同理可得 a*=3/=-= a+=a-=a+aa 的初值是 9a+=a-=18 a+=(a=a-18) a+=(a=-9)a+=
10、a-1815假设有定义语句:int x=10;,则表达式x-=x+x 的值为( B ) A-20B-10C0D1014设有定义:int x=2;,以下表达式中,值不为 6 的是 ( D ) A x*=x+1 x=x*(x+1)B x+,2*xCx*=1+xD2*x,x+=2(17)假设变量均已正确定义并赋值,以下合法的 C 语言赋值语句是 (A)A)x=y=5;B)x=n%2.5;C)x+n=ID)x=5=4+1;2.7+ 和 的讲解+:自身加 1-:自身减 1如i=3i+I=i+1i=4单目3+II+当+在前,先自身加 1,然后再干别人让干的事情 。当+在后,先别人让干的事情然后再干 自身加
11、 1。int i=3;int a; a=i+; a=3 a=+I;a=43.2 输出语句的讲解第三课:输入和输出语句一、printf 函数的一般调用形式格式:printf(格式把握,输出项 1,输出项 2,);在 printf 函数的最终面写上;号就是输出语句。1,给输出项白供给输出格式说明格式说明符:作用:就是使数据按格式说明符的要求进展输出。组成:由%号和紧跟在其后的格式描述符组成。int%dfloat 或 double-%f 或 e% char%c2.供给原样输出的文字或字符在“” 中除了格式说明符之外的内容要全部原样输出。各个输出项之间要用逗号隔开。输出项可以是任意合法的常量,变量或表
12、达式。printf 中常用的格式说明在格式说明符中,每一个格式说明符都必需以%号开头由相应的类型标识字母完毕。 但在他们之间可以有其它的一个内容:%c :输出一个字符%d:输出一个十进制的数据%o:以八进制格式输出。%X:以十六进制输出%U:无符号十进制输出%f:以带小数点的数字输出%e:以指数形式输出%s:输出一个字符串。%:输出一个%号%4d:输出的数据长度是 4 个长度,当原来的长度大于 4 个时会自动突破。小于 4 个时会填充空格。%x.yf:x 代表数制的宽度包括小数点。Y 代表小数点后面的小数位数。留意事项:1. 输出比较自由一些,输出有的各个数之到底是什么,取决于格式说明符之间的
13、内容。2. 格式说明符要与输出项一一对应。3. 输出语句中还可以有 nrta4. 尽量不要在输出语句中转变输出变量的值。5. 输出的数据中假设存在变量,确定要定义过的。输入语句格式: scanf(格式把握,输入项 1,输入项 2,);例如:想通过键盘输入 3 个数分别给变量 a,b,c。并且他们分别为整型,浮点型,双精度型。输入语句为 scanf(“%d%f%lf“,&k,&a,&y);说明:1. 格式说明符与输出语句一样。2. 在格式串中,必需含有与输入项一一对应的格式转换说明符。3. 在 VC6.0 的环境下,要收输入的 DOUBLE 型数据的格式说明符确定要用%lf,否则数据不能正确的输
14、入4. 由于输入是一个字符流,所以当输入的数据少于输入项时,程序会等待用户输入, 直到满足要求。当输入的数据多于输入项时,多余的数据会自动作废。复合语句:多个语句被括起来,当成一条语句来执行。空语句:最终的表示只有一个;程序举例:1。编写一个程序,从键盘上输入两个数字,让后让他们互换一下。#includemainint a,b;printf(“请输入两个数字:“); scanf(“%2d%3d“,&a,&b); printf(“qian:%d%d“,a,b); int c;c=a,a=b,b=c;printf(“后:%d%d“,a,b);2。编写程序,对一个 double 型数据进展四舍五入运
15、算。要求保存两位有效小树。123.4567123”4567*100=12345.6712345.67+0.5=12346.17 (int)(12346.17)=12346 12346/100=123.46第四课:C 语言的程序构造4-1 节、关系运算与规律运算一、简介关系表达式与规律表达式的运算结果都会得到一个规律值。就是“真”、“假”在 C 语言中 0 表示“假”,非 0无论是负数还是正数都是真,更多时候用 1 来代替 表示“真”。二、几个简洁的关系运算符=!=留意:1,由两个字符组成的运算符,中间不能有空格2,它们都是双目运算符,具有自左至右的结合性。3,上面的 6 个运算符中,前 4 个
16、的优先级要比后 2 个的优先级要高。先计算,后推断,最终进展赋值运算。三、几个简洁的规律运算符&与一假则假|或一真则真!非非假则真,非真则假4-2 、4-3 节、 if 语句一、定义:只有两种结果。要么执行这条语句,要么执行那条语句。if(条件表达式)上述条件成立执行的句子else上述条件不成立执行的句子如:if(成绩60)显示及格else显示不及格二、分类1. 不含有 else 的语句2.含有 else 语句if(条件)语句 1;else语句 2; 语句 3;注:1. 没有分号2. 把握的是与 if 或者 else 紧临的“一条”语句。4-4 节、结合一个例题来给大家分析 if 的嵌套输入一
17、个学生的成绩,评定他的等级。每格外一个等级if elseif elseif elseif(a=90) printf(“a“); elseif(a=80) printf(“b“); elseif(a=70) printf(“c“); elseif(a=60) printf(“d“); else printf(“e“);4-6 节、条件表达式是 C 语言中唯一的一个三目运算。格式 :表达式 1?表达式 2:表达式 3当 1 成立非零时时,表达 式的值就是 2 的值,否则就是 3 的值。如:1.12?4:52.printf(“%d“,x3?(x3?a:b):b4-7 节、switch 语句一 swi
18、tch(表达式)case 常量表达 式 1:语句 1 case 常量表达 式 2:语句 2 case 常量表达 式 3:语句 3 case 常量表达 式 4:语句 4 case 常量表达 式 5:语句 5。case 常量表达 式 N:语句 N4-8 节、switch 语句二 switch(A/10)case 10:printf(“A“);case 9:printf(“A“);case 8;printf(“b“);case 7;printf(“c“);case 6;printf(“d“); default :printf(“e“);第五课:循环构造5-1、5-2 节、while 语句一、格式 :
19、while(表达式)循环体注:1:2:3:一条while(a3)1 a+=s;2s=a;31.100int i=1,sum=0; while(i101)sum=sum+i+; printf(“%d“,sum);丛 1 开头加到哪个数时他们的和将超过 1000? int i=1,sum=0;while(sum1000)sum+=i;999+42=1041i+;4243printf(“%d“,-i);5-3 节、do-while 语句dowhile格式:do循环体while(表达式)1235813doa3=a1+a2; a1=a2; a2=a3;while(a3=1000); 1:12:;5-4
20、节、for 语句1for 语句和 for 语句构成的循环构造一、格式:for(表达式 1;表达式 2;表达式 3)循环体相当于 while 语句的表达式 1; while(表达式 2)循环体; 表达式 3;k=0 for(;k=10;)printf(“*“); k+;int k=0; while(k10)printf(“*“); k+;注:1:表达式可以省略,但分号不行以。2:表达式可以是任意有效的 C 语言表达式课后习题局部,笔记不再供给,请大家看教程。第六课、字符型数据6-1 节、字符型常量格式:a A 要求:1,单引号中的大写字母和小写字母代表不同的字符常量。2. 单引号中的空格也是一个
21、字符常量,但不能是两个连续的单引号3. 字符常量只能用单引号括起来,不能用双引号。转义字符n 代表回车代表一个单引号 代表一个”代表一个双引号留意:1. 转义字符常量,如141只代表一个字符2. 反斜线后的 8 进制数可以不用 0 开头。如 1 中所讲的 141 就是一个 8 进制数。01413. 反斜线后的 16 进制数只可以用 x 开头,不行以用X 开头。字符串常量格式:由双引号括起来的一串字符。同时也要知道“A”和A是不一样的。“A”AACSII 码A65a97a-A=326.2 节、字符变量格式:char a=s6.3 字符的输入和输出Printf 和 scanf 函数输出和输入字符对
22、于字符型数据的格式说明符是%c Char c=a;Printf(“%c”,c);Char a,b,c,d;Scanf(“%c%c%c”,&a, &b, &c);6-3 节、程序举例写出 26 个大写字母和他们的 ASCII 代码要求每行输出两组数据。#include MainChar ch; int I;For(i=0;i26:i+) Ch=i+65;If(i%2= =0)Printf(“n”) Printf(“c=%c,ASCII=%d”,ch,ch)在上面的程序中有对于字符的输入与输出,在 C 语言中也有另外的输入输出字符的语句。输入:变量名=getchar 输出:putchar(变量名)
23、第七章 函数7-1 节、库函数1. 调用 C 语言标准库函数时要求的 include 命令行Include 命令行必需以#开头,系统供给的头文件以.h 作为文件的后缀,文件名用一对双引号或一对尖括号需要留意 include 命令行不是 C 语句,因此不能在最终加分号2. 标准库函数的调用函数名参数表 如:putchar(ch)(1) 消灭在表达式中的ch=getchar(2) 做为单独的语句完成某种操作。printf(“*”)7.2 函数的定义和返回值由于 C 语言中的定义的函数不能完成用户全部的要求,所以用户可以为自己定义函数实现相应的功能。7.2.1 函数定义的语法1:格式:函数返回值的类
24、型名 函数名类型名 形式参数1,类型名 形式参数2说明局部语句局部2:函数名和形式参数都是用户命名的标识符。在同一个程序中,函数名必需唯一, 形式参数名只要在同一函数中唯一即可,可以与其他函数中的变量同名。3:C 语言规定,不能在函数的内部定义函数。4:假设在函数的首部省略了函数返回值的类型名,则说明该函数的返回值是 int 类型5:除了返回值类型为 int 类型的函数外,函数必需先定义后调用。6:当没有函数返回值,则必需把函数定义成 void 类型。例:编写求两个双精度数之和的函数。double add(double a, double b )double s; s=a+b; return
25、s;7-2 节、函数的返回值函数的值通过 return 语句返回,return 表达式;此表达式的值必需与函数首部所说明的类型全都,假设类型不全都,则以函数值的类型为准。需要留意的是,无论函数体中有多少个 return 语句,只能执行一次。函数体内可以没有 return 语句,这时也必需定义函数为 viod 类型。7-3 节、函数的调用7.3.1 函数的两种调用方式格式为:函数名实在参数表当实参的个数多于一个时,各实参用逗号隔开。实参的个数必需与调用函数中形参的个数相周,类型一一对应匹配。如没有形参,则形式为 函数名留意后面的小括号不能丢。如题:#includedouble add(doubl
26、e ,double); maindouble m,n,z; scanf(“%lf %lf”,m,n); z=add(m,n); printf(“%lf”,z);double add(double a, double b )double s; s=a+b; return s;7.3.2 函数调用时的语法要求1. 调用函数时,函数名必需与所调用的函数名字完全全都。2. 实参的个数必需与形参的个数全都。3.C 语言中规定,函数必需先定义后使用。4.C 语言中,函数可以直接或间接的自己调用自己。称为递归调用fac(n)=fac(n-1)*n7-4 节、函数的说明在 C 语言中但凡未在调用前定义的函数,
27、C 编译程序都默认函数的返回值为 int 型。对于返回值是其它类型的,假设把函数的定义放在调用之后,应当在调用之前对函数进展说明。说明的格式:类型名 函数名参数类型 1,参数类型 2.。 也可以用以下格式类型名 函数名参数类型 1 参数名 1,参数类型 2 参数名 2, 函数说明的位置:一般为了让程序早点识别出程序中的定义好了的函数,一般将其放在程序的开头局部7-5 节、调用函数和被调用函数之间的数据传递一:三种格式进展传递1. 实在参数和形式参数之间进展数据传递2. 通过 return 语句把函数值返回调用函数3. 能过全局变量,但这不是一种好的方式,通常不提倡使用。通过一个程序来看一下数据
28、到底是怎样传递的。#include viod try(int ,int ,int ); mainint x=2,y=3,z=0;printf(“(1)x=%d y=%d z=%dn”,x,y,z);try(x,y,z);printf(“(4) x=%d y=%d z=%dn”,x,y,z);void try(int x,int y,int z)printf(“(2) x=%d y=%d z=%dn”,x,y,z);z=x+y; x=x*x; y=y*y;printf(“(3) x=%d y=%d z=%dn”,x,y,z”);屏幕上的结果是: (1) x=2 y=3 z=0 (2) x=2 y
29、=3 z=0 (3) x=4 y=9 z=5 (4) x=2 y=3 z=0再来一个程序#include viod swap(int ,int); mainint x=10,y=20;printf(“(1)x=%dy=%dn”,x,y);swap(x,y);printf(“(4)x=%dy=%dn”,x,y);void swap (int a,int b )int t;printf(“(2) a=%d b=%dn”,a,b);t=a;a=b;b=t;printf(“(3)a=%db=%dn”,a,b);程序运行结果(1) x=10y=20(2) a=10b=20(3) a=20b=10(4)
30、x=10y=207.6 程序应用举例编写一个函数 isprime(int a),用来推断自变量 a 是否为素数。假设是素数,函数返回整数 1, 否则返回 0.#include int isprime(int) mainint x;printf(“enter a integer number:”); scanf(“%d”,&x);if(isprime(x)printf(“%dis prime n”,x); elseprintf(“%dis not primen”,x);int isprime(int a)int i; for(i=2;i=a/2;i+)if(a%i=0)return 0;retu
31、rn 1;编写函数 myupper(ch),把 ch 中的小写字母转换成大写字母作为函数值返回,其他字符不变。主函数中不断输入字符,用字符完毕输入,同时不断输出结果。#include #include char myupper(char ch)if(ch=a&ch=z)ch=ch-32; return ch;mainchar c;while(c=getchar)!=)c=myupper(c); putchar(c);编写函数统计输入字符的个数,用字符完毕输入,在主函数中调用此函数,输出统计结果。#include long countch; mainlong n; n=countch; prin
32、tf(“n=%ldn”,n)long countchlong cn;for(cn=0getchar!=cn+);return cn;7-10-7-13 节、课后习题7.1以下说法中正确的选项是CA) C 语言程序总是从第一个定义的函数开头执行B) 在 C 语言程序中,要调用的函数必需在 main 函数中定义C) C 语言程序总是从 main 函数开头执行D) C 语言程序中的 main 函数必需放在程序的开头局部7.2 以下函数的类型是C A)与参数 x 的类型一样B) void 类型C) int 类型D)无法确定fff(floatx)printf(“%dn“,x*x);7.3 以下函数调用语
33、句中,含有的实参个数是 B A)1B)2C)4D)5func( (exp1,exp2),(exp3,exp4,exp5); 7.4 以下程序的输出结果是CA)11B)20C)21D)31func(inta,intb)intc c=a+b; returnc;mainintx=6,y=7,z=8,r; r=func(x-,y+,x+y),z-); printf(“%dn“,r);7.5 以下程序的输出结果是AA)-1B)0C)1maininti=2,p; p=f(i,i+1); printf(“%d“,p);intf(inta,intb)intc; c=a; if(ab)c=1;elseif(a=
34、b)c=0; elsec=-1;return(c);7.6 以下程序的输出结果是D A)0B)1C)6D)2D) 无定值fun(inta,intb,intc)c=a*b; mainintc; fun(2,3,c);printf(“%dn“,c);7.7 以下程序的输出结果是A A)5.B)3.C)4.D)8.25doublef(intn)inti;doubles; s=1.0;for(i=1;i=n;i+)s+=1.0/i; returns;maininti,m=3;floata=0.0; for(i=0;ieps;n+)s+=t; t=n*t/(2*n+1);return(2.0*S);7.
35、12 以下函数用以求x 的 y 次方.请填空. doublefun(doublex,inty)inti;doublez=1; for(i=1;i=y;i+)z=z*x;returnz;n7.13 以下程序的功能是计算S= S K!.请填空. longf(intn)K=1inti;longs; s=1;for(i=1; i=n;i+)s=s*i; returns;mainlongs;intk,n; scanf(“%d“,&n);s=0;for(k=0; k=n; k+)s=s+f(k); printf(“%ldn“,s);三、程序调试和编程题7.14 以下 fun 函数用以推断n 是否是素数,f
36、un 函数中有规律错,请调试改正. fun(intn)intk,yes;for(k=2; k=n/2; k+) if(n%k=0) return yes= 0; yes=1;return yes;第八章 : 指针变量8.1 变量的地址和指针:在最开头的时候,始终给大家强调变量要先定义,后使用。为什么会这个样子?这是由于,每当我们使用一个变量系统就必需要给他开拓一个存储单元。系统要对它的值进展记录。每时每刻的记录。怎样进展记录呢?系统会自动的开拓一个地方将该变量监视起来,观看和记录它的变化。这个地方多大放什么东西?这都要求我们提前和系统说好。所以就有了变量要先定义在使用说法。其实变量定义的过程就
37、是给他开拓存储空间的过程。那么存储空间又是什么东西呢?计算机种有一个硬件叫内存条,当我们提起这个硬件的时候往往都会说多大的。1G,2G,4G这都是在说他的空间大小。计算机中的内存是以字节为单位的一片连续的存储空间,每一个字节都有一个编号,这个编号就称为内存地址。如同旅馆的房间一样, 单人间,双人间等等,每个房间都有自己的编号。内存中的空间是连续的,地址号也是连续的,并且都是用二进制数来表示的。变量在定义的时候先要说明定义的类型。如:int k;double b; char ch;等等如此的定义。这样是在和电脑系统打招呼,我们是 2 人要一个两人间。目的就是告知老板你的房间要是两个人的空间。不能
38、定的是2 人间,结果来了3 个人住;同时也不能定的2 人间, 结果就你自己来了对自己来说多花钱了。综上所述:变量的定义就是给变量开拓存储空间的过程。int afloat baabbbb这10就12是变量10定13义的1时01候4系统10给15随机开10辟16的地1址01空7间。在结合我们在一开头讲的不同类型的变量的大小,其实就是在说变量所占的内存单元的多少。1012 就是整型变量 a 的首地址,1014 就是浮点型变量 b 的首地址。当要用到一个变量时,系统就会快速的找到这个变量。所以在 C 程序中还有这样的一个变量的存在,就是指针。指针就是用来存放一个变量在内存中的地址,当要调用这个变量的时
39、候能快速的找到。用来存放一个变量地址的变量就叫指针变量。同时大家也要走出一个误区就是:指针变量之所以叫变量,就是由于它里面所存放的变量的地址也不断的变化的。指针是可以移到的。8.2 指针变量的定义和指针变量的基类型一:格式:类型名*指针变量名 1,* 指针变量名 2.如int *pi,*pj;与之前不一样的地方就是在变量的前面加了一个*。*是一个说明符,用来说明该变量是指针变量。*号省略的话就和一般的变量一样了。又如:int*pi;char * ch;int a; char c;指针的作用都是一样的,都是用来存放地址的,为什么还要分类型的。缘由就是指针变量 pi 只能存放整型变量的地址,指针变量 ch 只能存放字符变量的地址。如何让一个指针存放一个变量的地址呢?pi=&a;ch=&c;&叫取址符。*叫指针运算符。能过以上的讲解在家确定对指针有了更进一步和了解。我们共同的回忆一下; 变量的定义就是给其开拓存储单元的过程。任何一个变量都有自己的存储地址。指针就是用来存放变量地址的。指针也是一个变量。指针也要一个地址。那,有没有能存放指针变量地址的一个对象呢?用该怎么称呼? 有它是特地用来存放指针的地址的。它就是指向指针的指针。int *p,*s; p=&s;*p 就是一个指向指针的指针。它里面只能存放同种数据类型的指针的地址。8.3 给指针变量赋地址值一个指针变量可以通
限制150内