- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指针是C语言的一个重要概念,也是C语言的一个重要特色。正确而灵活地运用它,可以有效地表示复杂的数据结构;
能动态分配内存;
能方便地使用字符串;
有效而方便地使用数组;
在调用函数时能得到多于1个的值;
能直接处理内存地址等;
这对设计系统软件是很必要的。
指针的概念比较复杂,使用也比较灵活,因此初学者时常会出错,务请在学习本章内容时十分小心。;#include stdafx.h
#include stdio.h
int main(int argc, char* argv[])
{
int a[10];
int i;
for(i=0;i10;i++)
a[i]=i;
for(i=0;i10;i++)
printf(%d \n, a[i]);
return 0;
};§6.1 地址和指针的概念;#include stdafx.h
#include stdio.h
int main(int argc, char* argv[])
{
int a[10];
int i;
for(i=0;i10;i++)
a[i]=i;
for(i=0;i10;i++)
printf(%d \n, a[i]);
return 0;
};#include stdafx.h
#include stdio.h
int main(int argc, char* argv[])
{
int a[10];
int i;
for(i=0;i10;i++)
scanf(%d,aa[i]);
for(i=0;i10;i++)
printf(%d \n,a[i]);
return 0;
};10.2.1定义一个指针变量
指针变量的定义包含三个方面的内容:
⑴ 指针类型说明,即定义变量为一个指针变量
⑵ 指针变量名
⑶ 变量值(指针)所指向的变量的数据类型。
格式: 存储类型 基类型 *指针变量名;;例:int *pointer_1, *pointer_2;
float *pointer_3;
char *pointer_4;
int a, b;
pointer_1,pointer_2 为指向int 的指针变量
pointer_3为指向 float 的指针变量
pointer_4 为指向char 的指针变量
不同类型的指针变量只能保存不同类型 的变量的地址;
而上面的a,b为普通变量,它们只能保存整数值.
注意变量和指针变量定义的差别;10.2.2 指针的引用
与指针有关的运算符有两个:
:取地址运算符
功能:取变量地址;单目,右结合。
* :取内容运算符(“间接访问”运算符)
功能:只能跟地址,取变量所指向单元的内容;单目,右结合。
例:a为变量a的地址, *p 为指针变量p所指向的存储单元。
例: int a=5, *p;
p=a; printf ( “%d”, *p );;main(){
int a,b; int *pointer_1,*pointer_2; a=100;
b=10; pointer_1=a; /*把变量a的地址赋给pointer_1*/ pointer_2=b; /*把变量b的地址赋给pointer_2*/ printf(“%d,%d\n”,a,b); printf(“%d,%d\n”,*pointer_1, *pointer_2);
}
输出结果:100, 10 100, 10;评注:
1、在第3行虽然定义了两个指针变量,只是提供了两个指针变量,但并未指向任何一个整型变量。称为指针“悬空”。
int *pointer_1,*pointer_2;
pointer_1=a; /*把变量a的地址赋给pointer_1*/ pointer_2=b; /*把变量b的地址赋给pointer_2*/
定义了变量后,必须为其赋初值?
若不为其赋初值,结果会如何?; 2、最后一行的*pointer_1和pointer_2就是变量a和b。
printf(“%d,%d\n”,a,b); printf(“%d,%d\n”,*pointer_1, *pointer_2);
;3、程序中两处出现*pointer_1等,含义不同。程序第3行中的*pointer_1表示定义指针变量pointer_1。它前面的*只是表示该变量
您可能关注的文档
最近下载
- 2022年一级造价师-土建案例-陈江潮精讲班完整讲义.pdf
- 第一册: 标准设计与典型造价 V3.0版 智能配电站.pdf
- 第二课性骚扰的危害 课件 2024—2025学年华东师大版(2024))初中体育与健康七年级全一册.pptx VIP
- 《工程勘察设计收费管理规定》计价格【2002】10号.doc
- 【国家标准】GB14759-2010 食品安全国家标准 食品添加剂 牛磺酸.pdf
- 2020年广西防城港中考生物真题及答案.doc VIP
- 前列腺癌的基础知识.pptx
- 食品安全管理员考试试题及答案(2025版).docx VIP
- 2025年中国空调离合器皮带轮市场现状分析及前景预测报告.docx
- (2)IT运维管理:ITIL先锋论坛—DevOps来了运维如何改变.docx
文档评论(0)