小焦指针编程之道.docx

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

针编程之道

河池高中逸之蝉(小焦叔叔)原创

2023年暑假,我研究了一个月的C语言指针,弄清了关于指针与数组、字符串、函数、文件的一些方法技巧,尤其是自己琢磨出使用指针数组批量运行若干个函数,批量打开若干个文件的快捷方法,以及从网上学到的关于二维数组的指针、二级指针、用指针函数返回它们的正确方法。今天天气凉爽,心情愉快,想撰写本文,徐徐分享给大家。

PORT1先做几个关于指针与数组和字符串的使用要点测试:

测试程序1

#includeSTDIO.H

voidmain()

{

char*p;

p=POINTERTESTING;//指针变量随时可以用字符串(常量)赋值

puts(p);

p=TESTSUCCESSFUL!; //随时可以更改,不会出错

puts(p);

}

测试程序2

#includeSTDIO.H

voidmain()

{

charstring[30];//如果没把指针指向固定地址,而用函数赋值是错误的;但是随时可以用字符串(常量)赋值

char*p;

p=string;//此处,string只是个常量,可以赋予变量p

gets(p);

puts(p);

}

①所谓“数据类型”就是告诉计算机一次到内存里存放或读取多少个字节的数据。

②指针是指向某个确定内存地址的变量,字符串是按顺序一个接一个排列在内存里的二进制数据,把字符串的首地址赋予指针,计算机运行程序时从字符串首地址开始一个个读取,所以能显示出想要的结果。

PORT2接着讲解返回指针值的函数(指针函数):

测试程序3

#includeSTDIO.H

#defineN19

char*To_Small(char*string,charn);

voidmain(void)

{

char*string=TEDAYISAGOODDAY;

char*ptr;

puts(string);

ptr=To_Small(string,N);//可以用一个字符指针来接收指针函数的值

puts(ptr);

puts(To_Small(string,N));//也可以将子函数的返回值直接作函数参数

}

char*To_Small(char*string,charn)

{

staticcharstring_1[N];//必须定义为静态数组,否则会返回不希望的值

char*str=string_1;

while(*string)

{

if(*string!=)

*str=*string+0x20;

else

*str=;

str++=string++;

}

str=string_1;//把指针指回首地址

puts(string_1);

returnstr;

}

测试程序4

#includeSTDIO.H

#defineN11//让N比数组长一个字节,以便可以用字符串的方式处理字符数组

char*zoon_10x(char*tab,charn);

voidmain(void)

{

charnum_tab[N]={2,3,1,5,9,7,6,3,4,8};

char*ptr;

chari;

ptr=num_tab;

while(*ptr)

printf(%d,*ptr++);//用字符串方式处理普通字符数组

putch(\n);

putch(\n);

ptr=zoon_10x(num_tab,N);//可以用一个指针变量接收指针函数的值

for(i=0;i10;printf(%d,*ptr),ptr++,i++);

putch(\n);

putch(\n);

ptr=zoon_10x(num_tab,N);

while(*ptr)

printf(%d,*ptr++);

}

char*zoon_10x(char*tab,charn)

{

staticchartab_1[N];

char*pt=tab_1;//这样写,系统也会给tab_1分配内存空间,可以用指针指向它

chari;

while(*pt++=*tab++*10);//最后一个元素是0

pt=tab_1;

while(*pt)

printf(%d,*pt++);

putch(\n);

for(i=0

文档评论(0)

知识贩卖机 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档