您的位置:首页 > 其它

实验9-1 指针类型

2012-04-26 22:16 363 查看

实验9-1 指针类型

实验目的:

理解指针类型。

实验步骤:

1.分组讨论下面的说法或问题。

1.1指针变量存储的内容为地址,而地址是有类型的,因为地址必须是某存储单元的地址时才有意义(即可以通过地址根据类型使用相关存储单元),因此,指针变量本质上指向的是某类型的存储单元。

1.2有了指针变量就是又多了一种使用存储单元的途径。

1.3地址是编号是整数,为何不能用整数给指针变量赋值?但为何使用强制类型转换之后就可以了?编译系统为何只尽到提醒的义务,而不绝对禁止呢?

2.已知有int i=3, *pi=&i;

2.1分析下面语句的输出(不能确定时用某某变量的地址代替)并编程验证。

printf("%x,%x,%x\n", &i, i,*i);

printf("%x,%x,%x\n", &pi,pi, *pi);

2.2根据程序的输出,画出变量i和pi简化的存储状态图。

2.3分析下面语句的输出并编程验证。

printf("%x,%x,%x\n", pi, *&pi,&*p);

3.有int i = 3, *pi, *pj;

pi = &i;

pj = pi;

3.1画出变量i、pi和pj的形象状态图。

3.2对于变量i所标识的存储单元,现在有几种使用途径?

3.3分析下面语句的输出并编程验证。

*pj = i + *pi;

printf("%d,%d,%d\n", i, *pi,*pj);

4.分析并比较下面三个程序的输出。

4.1

#include <stdio.h>

void main( )

{

inti = 3, j = 2;

int*pi, *pj, *ptemp;

pi = &i;

pj = &j;

printf("%d,%d\n", i, j);

printf("%d,%d\n", *pi, *pj);

ptemp = pi;

pi = pj;

pj= ptemp;

printf("%d,%d\n", i, j);

printf("%d,%d\n", *pi, *pj);

}

4.2

#include <stdio.h>

void main( )

{

inti = 3, j = 2, temp;

int*pi, *pj;

pi = &i;

pj = &j;

printf("%d,%d\n", i, j);

printf("%d,%d\n", *pi, *pj);

temp = *pi;

*pi = *pj;

*pj= temp;

printf("%d,%d\n", i, j);

printf("%d,%d\n", *pi, *pj);

}

4.3

#include <stdio.h>

void main( )

{

inti = 3, j = 2, temp;

int*pi, *pj;

pi = &i;

pj = &j;

printf("%d,%d\n", i, j);

printf("%d,%d\n", *pi, *pj);

temp = i;

i = j;

j= temp;

printf("%d,%d\n", i, j);

printf("%d,%d\n", *pi, *pj);

}

5.有int *pi;,如何评价语句pi=π?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐