- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指针;;8.1.2 地址与指针变量
指针变量的值:其他变量的地址;8.1.3 指针变量的定义
一般形式: [存储类型] 基类型 *指针变量名;;8.1.4 指针变量的赋值
取地址运算符
变量名 //表示变量的地址
单目运算符,优先级: 2 结合性:自右向左
例如:
int a;
int *p = a;
取指针所代表地址的内容运算符 *
单目运算符,优先级: 2 结合性:自右向左
例如:
*p = 1;
;指针变量的初始化
一般形式:[存储类型] 数据类型 *指针名=初始地址值;;例 main( )
{ int i=10;
int *p;
*p=i;
cout*p;
};8.1.5 对指针变量的操作
直接访问:按变量地址存取变量值
间接访问:通过存放变量地址的变量去访问变量;指针变量;指针变量与其所指向的变量之间的一些等价关系
例: int i, *i_pointer=i;;
;8.1.7 指针变量作为函数参数—地址传递
特点:共享内存,“双向”传递;调用swap时,内存单元分配情况:;swap(int *p1, int *p2)
{ int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
main()
{ int a,b;
cinab;
if(ab)swap(a,b);
coutabendl;
};调用swap时,内存单元分配情况:;指针与数组
指向数组元素的指针变量;数组元素表示方法;;数组名作函数参数
数组名代表数组首元素的地址,用数组名作函数实参时,是地址传递只是将实参数组首元素的地址传递给形参。这样,实参数组和形参数组就共占同一段内存单元;;void inv(int x[], int n)
{ int t,i,j,m=(n-1)/2;
for(i=0;i=m;i++)
{ j=n-1-i;
t=x[i]; x[i]=x[j]; x[j]=t;
}
}
main()
{ int i,a[10]={3,7,9,11,0,6,7,5,4,2};
inv(a,10);
printf(The reverted array :\n);
for(i=0;i10;i++)
printf(%d,,a[i]);
printf(\n);
};用array[]这样的形式表示array是一维数组名,[]中方括号内的数值并无实际作用。
void select_sort(int array[10],int n) //指定元素个数与实参数组相同
void select_sort(int array[],int n) //不指定元素个数
void select_sort(int array[5],int n) //指定元素个数与实参数组不同
;华 东 交 通 大 学 信 息 工 程 学 院;;;C程序可将上述数据的集合定义为一种结构体类型:;一、结构体定义的一般形式:;;;1. 先定义结构体类型再定义结构体变量;;定义形式 struct
{成员表列} 变量名表列;
不出现结构体类型名;; struct date
{ int month;
int day;
int year;
};
struct student
{int num;
char name[20];;结构的初始化; 若 x1 的起始地址为2000,则 x1 在内存中占有的存储单元为:;§7.1.3 访问结构成员;;二、箭头运算符:?;;;三、关于结构变量的几点说明:;如:struct temp;3. 不可以将两个结构变量进行关系比较;例:请指出下列程序的错误所在:;指向结构体变量的指针;;;例:开辟空间以存放一个结构体变量。
;; L = (Lnode *)malloc(sizeof(Lnode));
L-next = NULL; // 先建立一个带头结点的单链表
for (i = n-1; i =0; --i) {
p = (Lnode *)malloc(sizeof(Lnode)); // 创建结点
scanf( data); // 输入数据元素值
p-next = L-next; L-next = p; // 插入结点
}
文档评论(0)