变量的指针和指针变量的区别是什么
C语言程序设计_谭浩强_第二版_CH10
}
第十章 指针 10.3 数组的指针和指向数组的指针变量 10.3.2 通过指针引用数组元素 例10.5输出数组中的全部元素。 ②通过数组名计算数组中元素的地址,找出元素的值。
main() {
int a[10],i; for(i=0;i<10;i++){scanf(“%d”,&a[i]);} print(“\n”); for(i=0;i<10;i++){printf(“%d”,*(a+i));} print(“\n”);
}
运行结果为: 100,10 100,10
第十章 指针 10.2 变量的指针和指向变量的指针变量
10.2.1指针变量的引用 例10.1 通过指针变量访问整型变量
pointer_1 &a
a 100 *pointer_1
pointer_2 &b
b 10 *pointer_2
第十章 指针 10.2 10.2 变量的指针和指向变量的指针变量
10.2.1指针变量的引用 例10.3 通过指针变量访问整型变量
pointer_1 &a
a 5 *pointer_1
pointer_2 &b
b 9 *pointer_2
第十章 指针 10.2 变量的指针和指向变量的指针变量
10.2.1指针变量的引用 例10.3 通过指针变量访问整型变量
b 5 *pointer_2
&b
第十章 指针 10.2 变量的指针和指向变量的指针变量
10.2.1指针变量的引用 例10.3 通过指针变量访问整型变量
pointer_1 &a
a 9 *pointer_1
指针与指针变量
C语言程序设计教程
第8章 指针
17
(3)给指针变量赋空值
给指针变量赋空值,说明该指针不指向任何变量。 “空”指针值用 NULL 表示, NULL 是在头文件 stdio.h 中 预定义的常量,其值为0,在使用时应加上预定义行,如: #include "stdio.h" int *pa=NULL;
2019/2/12
C语言程序设计教程
第8章 指针
14
8.1.3 指针运算
1. 指针的赋值运算
(1)将变量地址值赋给指针变量,使指针指向该变量。 设有如下定义: int a,b,*pa,*pb; float *pf; 第一行定义了整型变量a,b及指针变量pa,pb。pa、pb还没有 被赋值,因此 pa 、 pb 没有指向任何变量 , 下面语句完成对 pa,pb的赋值: pa=&a; pb=&b;
pa与pb都是整型指针变量,它们间可以相互赋值, 如:pb=pa; 即 pa,pb都指向变量a,此时a、*pa、*pb 是等价的。指针指向变化如下图:
pa &a pb &b b,*pb pb a,*pa pa a,*pa,*pb
&a
b
&a
注意:只有相同类型的指针变量才能相互赋值,如pf=pa; 是不允许的。因为pa是整型指针,pf是浮点型指针。
7
2. 指针变量初始化
(1) 指针运算符与地址运算符 与指针引用有关的两个运算符:&与*。 &:取地址运算符 * :指针运算符,或称指向运算符、间接访问运算 符。 指针指向的对象的表示形式: *指针变量 此处*是访问指针所指对象的运算符,与指针定义时的* 不同。
c语言 ●第10章 指针-1
…
19
2.定义时同时赋值
int a[10];
int *p=a; c规定: /* 相当于int *p=&a[0] */
若有 int a[10];
int *p=a; 则 p+1:指向下一个数组元素。
…
p+i:其指向下移i个元素。
20
说明:若有 int a[10]; int *p=a; (1) p+i *(p+i) = &a[i] a[i]= a+i *(a+i) (2)数组的指针变量也可带下标 a[i] ,p[i], *(a+i),*(p+i) 是等价的。 (3)a与p的区别:a代表数组a的首地址,是常量。 p=a; p也代表数组a的首地址,是变量。 如:p++; 是正确的,而 a++; 是错误的。 (4)引用数组元素有三种方法: 下标法: a[i]或p[i] 地址法:*(a+i) 效率低 指针法:*(p+i) *p++ 效率高
13
讨论: 若将被调函数swap( )改为: swap(int *p1,int *p2) {int *p; *p=*p1; *p1=*p2; *p2=*p; /*中间变量是指针变量所指的对象*/ } p无确定的地址(地址是随机的),可能指向任何单 元,有可能破坏系统(乱放枪)。加上int c;p=&c;就没 有问题了。
3 6 9 …
i j k
2004
3010
2000
i_pointer
3
二.对内存单位的访问 存数—写 取数—读 对内存单位的访问,是通过地址进行的。 如: printf(“%d”,i); 读 再如:scanf(“%d”,&i); 写 直接访问:按变量的地址直接读写变量的值。 如:k=i+j; (1)从2000开始的内存单元中取出i的值3. (2)从2002开始的内存单元中取出j的值6. (3)相加后,送入2004开始的内存单元。 间接访问:将变量a的地址存入另一变量b中,访问a时,先 找b,取出a的地址,再按此地址访问a。
《C语言程序设计》第8章指针
10.3.3 指针变量和数组作函数参数 数组名作形参时,接收实参数组的起始地址;
作实参时,将数组的起始地址传递给形参数组。
引入指向数组的指针变量后,数组及指向数 组的指针变量作函数参数时,可有4种等价形式 (本质上是一种,即指针数据作函数参数):
(1)形参、实参都用数组名 (2)形参、实参都用指针变量 (3)形参用指针变量、实参用数组名 (4)形参用数组名、实参用指针变量
(4)指针变量的++、--与&、*的结合
对于指针变量的++、--与&、*的结合 使用,关键要注意按照运算符的优先级和 结合性进行。
例如: int a=2, *p; p=&a;
•表达式:(*p)++,按运算符的优先级,等价于 a++。其含义为:取出指针变量p所指向的内存单 元的值(即a的值),a的值加1,送回a的内存单 元,a的值变为3,p的值未发生变化,仍然指向 变量a。
程序说明:printf("%s\n",s);语句 通过指向字符串的指针变量s,整体引
用它所指向的字符串的原理:系统首先输出s 指向的第一个字符,然后使s自动加1,使 之指向下一个字符;重复上述过程,直至遇到 字符串结束标志。
main() { char string[ ]=”I love Beijing.”; printf(“%s\n”,string); }
3.数组元素的引用 数组元素的引用,既可用下标法,也可用
指针法。
10.3.2 通过指针引用数组元素 如果有“int a [10],*p=a;” ,则: (1)p+i和a+i都是数组元素a [i]的地址。
(2)*(p+i)和*(a+i)就是数组元素a [i]。 int a [3]; a [0]——*a a [1]——*(a +1) a [2]——*(a +2)
指针与指针变量详解
//指针变量的最详细的使用说明。
//指针变量是c语言最重要的特性,掌握了它,你就会很快的脱离菜鸟。
指针变量是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。
要搞清一个指针变量需要搞清指针变量变量的四方面的内容:指针变量的类型,指针变量(存放指针后)所指向的类型,指针变量的值或者叫指针变量所指向的内存区,还有指针变量本身所占据的内存区。
让我们分别说明。
先声明几个指针变量放着做例子:例一:(1)int *ptr;(2)char *ptr;(3)int **ptr;(4)int (*ptr)[3];(5)int *(*ptr)[4];如果看不懂后几个例子的话,请参阅我前段时间贴出的文章<<如何理解c和c++的复杂类型声明>>>。
1。
指针变量本身的类型。
从语法的角度看,你只要把指针变量声明语句里的指针变量名字去掉,剩下的部分就是这个指针变量的类型。
这是指针变量本身所具有的类型。
让我们看看例一中各个指针变量的类型:(1)int *ptr; //指针变量的类型是int *(2)char *ptr; //指针变量的类型是char *(3)int **ptr; //指针变量的类型是int **(4)int (*ptr)[3]; //指针变量的类型是int(*)[3](5)int *(*ptr)[4]; //指针变量的类型是int *(*)[4]怎么样?找出指针变量的类型的方法是不是很简单?2。
指针变量所指向的类型。
当你通过指针变量来访问指针变量所指向的内存区时,指针变量所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。
从语法上看,你只须把指针变量声明语句中的指针变量名字和名字左边的指针变量声明符*去掉,剩下的就是指针变量所指向的类型。
例如:(1)int *ptr; //指针变量所指向的类型是int(2)char *ptr; //指针变量所指向的的类型是char(3)int **ptr; //指针变量所指向的的类型是int *(4)int (*ptr)[3]; //指针变量所指向的的类型是int()[3](5)int *(*ptr)[4]; //指针变量所指向的的类型是int *()[4]在指针变量的算术运算中,指针变量所指向的类型有很大的作用。
变量的指针与指针变量.
二)指针数组和指向指针的指针
1、指针数组的概念:一个数组中的元素均为指针类型,称为指针数组。
形式:存储类型类型名*数组名[数组长度]
2、指向指针的指针:二级指针的定义:char **p;
含义:表示指针变量p是指向一个字符指针变量(即指向字符型数据的指针变量)的。
三)指针数组作main函数的形参:
指向数组的指针变量
教学难点
指向二维数组的指针
课时安排
2
教学方法
讲授与演示法相结合
教
学
内
容
及
过
程
设
计
一、复习引导
上节课介绍了指针变量的定义及其赋值。一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组和数组元素(把数组起始地址或某一元素的地址放到一个指针变量中)。
二、讲授新课
所谓数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址。
引用数组元素可以用下标法(如a[3]),也可以用指针法,即通过指向数组元素的指针找到所需的元素。使用指针法能使目标程序质量高(占内存少,运行速度快)。
一)指向一维数组的指针
定义形式:
int a[10];
int *p;
p=&a[0];或p=a;
第十章指针
课题
第十章变量的指针与指针变量
教学
目的
1、了解指针与地址的概念
2、掌握指针变量的定义、引用及指针变量作为参数
教材
分析
教学重点
指针变量的定义、引用及指针变量作为参数
教学难点
指针变量作为参数
了解指针与指针变量的概念
7
//问题:指针的引用 //源程序:5_3.cpp //#include <iostream.h> int main() { int a=2,b=3; int *pa,*pb; pa=&a; //指针变量的赋值 pb=&b; // cout<<"a="<<a<<" b="<<b<<endl; cout<<“*pa=”<<*pa<<“*pb=”<<*pb<<endl; *pa=1; //向pa所指向的变量赋值 *pb=*pa; //向pb所指向的变量赋值 cout<<"a="<<a<<" b="<<b<<endl; return 0; } 指针变量可用另一个指针变量赋值。 pa=pb;
如: *pa = 1;//等同于a = 1; *pb = 2;//等同于b = 2;
(2) 指针变量使用前须先赋初值,且只能赋值为具体有 效的地址. int a=2,b=3; int *pa,*pb; 然后 6
//源程序:2_2.cpp
5.1 指针类型
#include <iostream.h> int main() { int a=2,b=3; int *pa,*pb; pa=&a; pb=&b; cout<<"&a="<<&a<<" &b="<<&b<<endl; cout<<"pa="<<pa<<" pb="<<pb<<endl; return 0; }
指针和指针 变量
9.3 数组的指针和指向数组的指针变量
int fmin(int *p, int n) { int i,m;
m=*p; for(i=0;i<n;i++) if (m>*(p+i))
m=*(p+i); return(m);} main( ) { int a[10],min,i; for(i=0;i<n;i++) scanf(“%d”,&a[i]); min=fmin(a,10); printf(“min=%d”,min); }
上一页 下一页 返回
9.2 指针变量的定义与应用
(2) 指针的赋值与比较 例9.1 main( ) { int a,b; int *p1,*p2; a=10;b=20; p1=&a;p2=&b; printf(“%d %d\n”,*p1,*p2); p1=p2; *p2=5; printf (“%d %d\n”,*p1,*p2); }
上一页 下一页 返回
9.2 指针变量的定义与应用
(3) 指针的算术运算
1)指针可以与整型数相加减
若指针变量p当前指向2000单元,其基类型是整型,则以下操 作是合法的。
p=p+1
/* p指向2002单元 */
p=p+2;
/* p指向2006单元 */
p=p-1;
/* p指向2004单元 */
2)指针的减法运算
第9章指 针
9.1 指针和指针变量的概念 9.2 指针变量的定义与应用 9.3 数组的指针和指向数组的指针变量 9.4 字符串的指针和指向字符串的指针变量 9.5 返回指针值的函数 9.6 指针数组与主函数main( )的形参 9.7 函数的指针和指向函数的指针变量
C语言指针变量的定义及指针的应用
智者论道智库时代 ·275·C 语言指针变量的定义及指针的应用王宇博(山西农业大学,山西晋中 030800)摘要:C 语言进行编写程序一定会使用上指针,指针的操作是编写程序的一个点。
准确灵活地运用它,能够帮助我们处理实际生活中遇到的很多问题。
文章阐述了指针、指针变量以及指针运算标识符的概念,并运用实际例子介绍复杂指针的相关应用,让读者能够更加深入了解、掌握C 语言。
关键词:C 语言;指针;运用中图分类号:TP313文献标识码:A文章编号:2096-4609(2019)19-0275-002指针可以说是C 语言之中很具有特色的一个方面,另外也是C 语言学习过程中的重点以及难点。
标准、合理、正确、灵巧地运用其功能,可以用其代表繁杂的数据类型。
熟练应用指针功能,能够让程序更加简洁以及高效。
部分C 语言学习者在进行学习过程中很难对学习内容做到全部理解,致使其学习过程很艰难。
一、指针和指针变量的区别(1)“指针”是定义,“指针变量”为实际表现。
指针可以说是一种变量,因此我们可以对其进行概念化,而其概念与常见变量相同。
(2)一个变量的“指针”是指此变量的地址,借助指针可以寻找到用它来当作地址相关内存单元。
另外指针变量可以用来放置其他变量的内存地址。
(3)指针与指针变量有着不同的两个定义,需要提醒的是,一般提及指针变量时往往会将其简称为指针,但事实上两个实际含义并不相同。
二、指针变量定义在C 语言使用过程中要求所有变量先进行定义才可以进行使用,规定其类型,且依据此来区分内存单元。
指针变量与常规的整型等类型变量不完全相同的某种变量,这是一种是存放相应地址的专用变量,所以需要定义其“指针类型”。
指针变量名称的常规可见形式一般为:基种类型*指针变量名称;例如:int *i;float *j;“*”一般代表此变量的类型是指针类型。
指针变量名称是i 和j,并非*i 和*j。
在对指针变量进行定义时首先要指定其基类型。
实验8-1 指针基本概念
实验8-1 指针基本概念【知识点回顾】1.指针和指针变量1)内存地址:内存存储单元的编号,从0开始,以字节为单位2)指针:一个内存地址有且仅有一个内存存储单元对应,即一个地址“指向”一个单元,故将地址称为指针3)指针变量:C语言中允许将地址作为数据值,用一个变量来存放。
存放指针的变量称为指针变量。
2.指针变量使用三步骤1)声明:一般形式如:类型说明符*指针变量名;2)初始化:一般形式如:指针变量=&变量;3)访问数据:一般形式如:*指针变量3.指针运算符1)间接访问运算符“*”2)取地址运算符“&”4.printf和scanf是否使用指针对比:假定有int x,y;int *px=&x,*py=&y;1)不使用指针的输入输出语句:scanf(“%d %d”,&x,&y);printf(“%d %d”,x,y);2)使用指针的输入输出语句:scanf(“%d %d”,px,py);printf(“%d %d”,*px,*py);5.打印地址信息:1)使用%p占位符2)使用%x占位符【典型例题】1.例题1,指针的基本使用方法#include <stdio.h>int main(){int data=100;//第一种指针变量定义方式:声明与初始化分两步完成int * pd; //声明指针变量pd=&data; //初始化指针变量,注意细节,data变量必须之前声明过//下面是第二种指针变量定义方式:声明与初始化一步完成//int * pd = &data; //声明指针变量,同时初始化指针变量printf("Direct access: data = %d\n", data); //变量的直接访问printf("Indirect access: data = %d\n",*pd); //变量的间接访问printf("The address of data is %p\n", &data);//变量的地址输出printf("The address of data is %p\n",pd); //指针变量的输出return 0;}程序运行效果如下:2.例题2,两数求和。
指针和指针变量的概念
➢ 用&运算符 p=&I; ➢ 用malloc函数 例如:p=(int*)malloc(sizeof(int)) 引用指针变量所指单元:
间接访问运算符: *
*p是p所指向的单元
p 2000 &i
5 *p i
main() {int *p1,*p2,a,b; a=10;b=100; P1=&a; p2=&b; printf(“%d,%d\n”,*p1,*p2); }
(2)在本案例中,也可以不使用i来作循环控 制变量,程序怎么修改?提示:指针可以参 与关系运算。
说明:
(1)指针变量的值是可以改变的,所以必 须注意其当前值,否则容易出错。
(2)指向数组的指针变量,可以指向数组 以后的内存单元,虽然没有实际意义。
(3)对指向数组的指针变量(px和py)进 行算术运算和关系运算的含义
(3)指向数组的指针变量,也可将其看 作是数组名,因而可按下标法来使用。 例如,pointer[i]等价于*(pointer+i)。
• 注意:pointer+1指向数组的下一个元 素,而不是简单地使指针变量pointer 的值+1。其实际变化为pointer+1*size (size为一个元素占用的字节数)。
数据类型 *指针变量[, *指针变量2……];
指针变量定义举例
例如:int *p1,*p2;
float *p3;
char *p;
指针变量名
基类型 指针变量的标志
注意:1.*是标志,真正的变量名是p。
2.指针变量并没有确切指向。 3.一个指针变量只能指向同一类型的变量。
10.2.2指针变量的引用
• 为指针变量赋值
C语言中“指针”和“指针变量”的区别及定义
C语言中“指针”和“指针变量”的区别及定义
今天来学习指针,当我们在叫外卖的时候,一般都会让外卖送到详细的地址,而当你的公司独占一层的情况,你只需要让外卖送到前台即可.无论是哪种情况,外卖都是送到你的手上.
而对于计算机,访问内存的方式有两种,直接访问和间接访问..直接访问通过就是之前讲的通过变量名称去访问.而对于间接访问,指针是常见间接访问方式.指针就像一个快捷方式,它指向内存的一个地址.我们通过指针就可以间接的访问到数据.
C语言中“指针”和“指针变量”的区别是什么??
一个变量的(内存)地址称为该变量的“指针”,通过指针能找到以它为地址的内存单元。
而指针变量是用来存放另一个变量的地址的(即指针)。
指针概念是构成C/C++的重要元素之一,是变量的一种类型,存放的是指定类型数据的地址,而同类型变量存放的是数据。
指针变量,顾名思义,就是一个变量,其值是可变的,与整形变量、浮点变量等等的命名规则完全相同。
“指针”是概念,“指针变量”是具体实现。
指针也是一个变量,所以需要我们进行定义,而对于指针的定义,与一般变量一样.
对指针变量的定义包括三个内容:
(1) 指针类型说明,即定义变量为一个指针变量;
(2) 指针变量名;
(3) 变量值(指针)所指向的变量的数据类型。
其一般形式为:
类型说明符*变量名;
其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型。
例如:int *p1;。
chap8(指针)
务必记住:*(a+i) 和 a[ i] 是等价的。
如果 a 是一维数组名,则a[ i]代表第 i+1个元素所占的 内存单元。但如果a是二维数组,则a[ i ]代表一维数组名, a[i]本身是不占用内存单元的, 也不存放元素值,而只是 一个地址。 a、a+i、a[ i]、*(a+i)、*(a+i)+j、a[ i]+j都是地址, 而*(a[ i]+j)、*(*(a+i)+j)是二维数组元素a[ i][ j]的值。
二、 字符串指针作函数参数
可以用地址传递的方式,即用字符数组名作 参数或用指向字符串的指针变量作参数,将一个 字符串从一个函数传递到另复制。 用字符数组作参数 void copy_string( from , to ) char from[ ] , to[ ] ; { int i = 0 ; while ( from[i] != „\0‟ ) { to[i] = from[i] ; i + + ; } to[i] = „\0‟ ; 运行结果: } string_a = I am a teacher. string_b = I am a teacher. main( ) {char a[ ] = “I am a teacher.” ; char b[ ] = “you are a student.” ; copy_string( a , b) ; printf( “string_a = %s\nstring_b = %s\n”,a,b); }
形参用字符指针变量 void copy_string(from , to) char *from , *to ; { for ( ; *from != „\0‟; from++; to++) *to = *from ; *to = „\0‟; } main( ) { char *a= “I am a teacher.”; char *b= “you are a student.”; copy_string(a,b); printf( “string_a = %s\nstring_b = %s\n”,a,b) ; }
C语言程序设计——指针(完整版)PPT教学课件
说明:
(1)设有指向整型变量的指针变量p,若要把整型变量a 的地址赋予p,有以下方式: 指针变量初始化的方法: int a; int *p=&a; 赋值语句的方法: int a,*p; p=&a; (2)指针运算符*和指针变量说明中的指针说明符*不是 一回事。后者表示其后的变量是指针类型,前者则是一 个运算符用以表示指针变量所指的变量。
三、 指针变量作函数参数 C语言是通过传值将参数传递给函数的,对被调函数来说, 没有直接的方法来改变主调函数内的变量的值。 例:对两个整数按大小顺序输出。 #include<stdio.h> swap(int x,int y) {int t; t=x; x=y; y=t; } void main( ) {int a=3,b=5; if(a<b) swap(a,b); printf(“a=%d,b=%d \n”,a,b); }
说明:
(1)指针变量名的构成原则是标识符,前面必须有 “*”, 表示该变量的类型是指针型变量。 (2)在一个定义语句中,可以同时定义普通变量、数组、 指针变量。 (3)类型说明符说明的数据类型不是指针变量中存放的 数据的数据类型,而是它将要指向的变量或数组的数据 类型。因此,一个指针变量只能用来指向同种数据类型 的其他变量或数组,不能时而指向一个浮点型变量,时 而指向一个整型变量。
说明:
(3)如果已执行了语句p=&a; ,则: &*p:先进行*p的运算,即是变量a,再执行&运算, 即变量a的地址。因此&*p与&a相同。 *&a:先进行&a的运算,即得a的地址,再执行*运 算, 即&a所指向的变量,即变量a。 因此*&a与a相同。
指针与指针变量
(1)定义指针变量
在变量定义语句int *p, *p1, *q; 中用 * 定义的变量均为指针变量。因此该语句定义了名为p、p1与q三个整型指针变量。因为指针变量用于存放变量地址,而地址通常为4字节,所以指针变量的长度均为4个字节。
指针变量的自减运算是将指针变量指向上一元素的运算。当计算机执行 <指针变量>―― 指令后,指针变量实际减少为指针变量类型字节数,即:
<指针变量>=<指针变量>―sizeof(<指针变量类型>)
自加运算和自减运算既可后置,也可前置。
(3)指针变量加n运算
指令格式:<指针变量>=<指针变量>+n;
int *p;
p=&a[0]; //p指向a[0],p=1000
p++ ; //p指向下一个元素a[1],p=1004
cout<< *p<<'\t'; //输出a[1]的内容1。
p=p+3; //p指向下3个元素a[4],p=1016
cout<< *p<<'\t'; //输出a[4]的内容4。
cout<<"a1="<<a1<<'\t'<<" a2="<<a2<<'\t' <<"a1+a2="<<a3<<'\n';
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2变量的指针和指针变量的区别是什么。
答;一个变量的地址指出了变量的存储单元在内存中的具体位置,能对变量进行存取操作。
这个变量的地址就是变量的指针。
指针是一种具有特殊意义的整型数,指针不能存放在一般的整型变量中,必须存放在专门指针的变量中,这类变量就是指针变量。
3 一维数组元素的引用有哪些方式。
答;下标法、地址法、指针法
4 2维数组列地址有哪些计算方法。
答;1 根据数组元素所在的行计算出行地址,然后把行地址转换成行中首元素的地址,再根据数组元素所在的列计算数组元素的地址。
2 根据2维数组的数组元素在存储空间上按行连续存放的特点,每个数组元素的地址等于2维数组元素的首元素地址加上该数组元素相对于首元素位置的偏移量。
3把2维数组的每一行当作一个一维数组,用一维数组元素地址的计算方法计算相应的2维数组元素的地址。
第9章结构体与共用体
1 什么是链表。
其中单向链表具有哪些特点。
答;链表是若干个同样类型的结构通过依次串接方式构成的一种动态数据结构。
链表中的每一个结构体数据成为结点,链表可以分成单向链表和双向链表
单向链表的特点;1 链表中的结点数据可以改变的
2 结点占用的内存是动态分配内存和动态释放内存函数。
2 对单向链表的常用操作有哪些。
答;对单向链表的常用操作有建立、显示、插入,删除和查找。
3 什么是共用体。
答;共用体是一个集合体。
它的各个成员的数据类型可以是不相同的,所有成员共享同一段存储空间,存储空间的大小取决存储单元最大的成员的数据类型。
4 指向结构体类型变量的指针变量引用形式有哪些。
答;有两种形式;【星号指针变量名】。
成员名和指针变量名-大于号成员名。
第10章位运算及编译预处理
1 C提供的编译预处理功能有哪些。
如何实现。
答;功能有三种;宏定义、文件包含和条件编译,分别用宏定义命令、文件包含命令、条件编译命令实现。
2 文件包含的基本功能是什么。
答;文件包含处理是一个源文件可以将另一个源文件的全部内容包含到本文件中来,作为本文件的一部分,这可以节省程序设计人员的重复劳动。
【3【在C语言中提供了几种什么样的位运算符。
答;-、小于小于、大于大于、
4 文件包含需要注意哪些问题
答;一个井include命令只能指定一个被包含文件,包含多个文件侧需多个井include命令;文件包含可以嵌套,即一个被包含文件中可以包含另一个被包含的文件;在井include命令中,文件名可以用双引号或尖括号括起来。
第11章文件
1 文件的结束标志有哪些。
答;每个文件都有一个结束标志。
当文件的位置指针移到文件的结束标志处时,表示文件结束。
如何测试文件是否结束,常有2种方法
1 ASCII码文件的结束标志用【-1】表示。