c语言指针教学(C语言初学指针问题)
本文目录
C语言初学指针问题
p=&i就是把i的地址赋值给p,p本来就是指针变量,它就是要存地址。q是指针变量,q就指向一个int型变量的地址,而*q就是它指向这个地址里存的值。
C语言中如何用指针变量的方法来实现1输入的十个数的逆序输出啊、哪位大虾解答下感激不尽!!!
用C语言指针实现字符串逆序及回文串的判定口裴晓英(新疆兵团高等专科学校新疆·鸟鲁木齐831300)摘要:字符串逆序输出是C语言经典算法之一,过去利用数组下标处理此类问题,较为繁琐,本文给出了利用指针实现任意给定字符串的逆序输出方法,以及在此基础上进行回文字符串判断的便捷方法。关键词:C语言指针字符串逆序算法回文中图分类号:TP39 文献标识码:A 文章编号:1007-3973(2008 1 12-071.Ol‘C语言中,实现任意给定字符串的逆序输出,是一道经典常用算法,掌握此类算法,对于提高运用字符串能力及编程综合能力都有很大的帮助。对于C语言字符串的处理,人们惯常使用的是数组下标的方法,不仅效率低,而且估算下标容易出错,准确率低,最为致命的还是下标一旦越界,会出现乱码甚至程序崩溃。笔者经过试验、总结,提炼出用指针实现字符串逆序输出的简便方法,并且在此基础上,应用此类方法,我们可以方便快捷的解决同类的字符串处理问题,例如回文的判断,本文也给出了相应实现办法.1问题(1)对于任意给定的字符串,进行倒置,打印输出该串为原串的逆序。例如输入为“tomo玎ow”。则其存储和输出即为“worromot”。(2)判断任意给定字符串是否回文,输出相应提示信息。所谓“回文串”,即一个字符串正序读和逆序读时都一样,如“level”或者“noon”等等就是回文串。2算法思路问题1)将一个给定字符串逆序存储定义一个足够大的字符数组,用于存储用户输入的任意字符串。再定义两个字符指针,分别指向字符串的头部和尾部,交换两指针指向的字符,交换后两指针分别后移和前移,循环交换对应位置的字符,直到两指针在中点相遇,则整个串实现了与原串的逆序存储。问题2)回文的判定:类似问题1)的处理方法,我们首先定义一个足够大的字符数组,用于存储用户输入的任意字符串。再定义两个字符指针,分别指向字符串的头部和尾部,两指针分别后移和前移,依次判断对应位置的字符是否相同,一旦不相同即退出循环,说明不是回文串,若一直相同,直到两指针在中点相遇,则整个串是回文串,输出相应信息。问题I)和问题2)的核心算法,都是对对应位置的字符进行比较判断,故我们都采用指针的方法可以很方便的解决这两类问题。3算法实现对比:用数组下标的方式判定回文的算法实现(结合指针的运用):#include“stdio.h”#include“string.h”int mmnO{ ,char sn-[50J,’p;im i;printf(“请输入字符串妇”);scanq”%s”,s∞;P-s也t/把指针移动到字符串的末尾矿矿strlen(str)-I;for(i=O;i《(int)strlen(str);i++,p..){if(+p!fstr){printff”这个字符串不是回文、Il”);return l;}’printff”这个字符串是回文、ll”);return O:}对比:用堆栈的方式判定回文的算法实现:#include《stdio.h》#define S1’ACK INIT SIZE loo#dcfine STACK INCltEⅣ【ENT lOtypcdef struct{char+base;char‘top;int stacksizc;}SqStack;int InitStack(SqStack‘S){S-》base=(char+)malIoc(STACK—INIT—SIZE+sizeof(char)):if(!S-》base)rg:t1.1nl 0:S-》top=S-》basc;S-》s。tacksizc;STACK_INIT-sIZE;rgturn l:)int净0:intj=O;char str;斟m论丘·2008年第12期I下)万方数据戆黍熬j纛窦鬻鬃基于SolidWorks拉深模三维CAD系统的研究口张俊(宿迁学院机电工程系江苏·宿迁223800)摘要:本文简要介绍了开发拉深模具三维CAD系统的整体过程,并以凹模为例,详细阐述了模具各零部件的三维设计步骤,并给出了凹模设计的方法和开发程序。关键词:拉深模SolidWorks vB中图分类号:TP39 文献标识码:A 文章编号:1007.3973 I 2008)12-072·02筒形件拉深模具在汽车、拖拉机、飞机、钟表、电器和仪表中得到了广泛应用,市场前景良好。目前,三维筒形件拉深模CAD系统的研究和开发较为滞后,三维系统的开发迫在眉睫,本研究对于促进模具三维软件的开发、提高模具设计质量和生产效率、推进模具行业的快速成型技术和促进制造业的全面发展,均具有重要的研究价值。本系统采用Windows XP为操作系统、Visual Basic 6.0为编程工具、SolidWorks 2006为图形处理软件、MicrosoftAccess 2003为数据库管理系统。1系统的需求分析拉深模CAD系统的任务就是要使设计人员可以快速、轻松查阅数据和表格,降低对设计人员经验的依赖性,辅助设计人员进行决策,减轻设计人员绘图劳动,使拉深模设计更轻松,实现三维造型设计,提高模具质量和设计效率。筒形件拉深模CAD系统是一个比较复杂的系统,采用结构化分析方法可简化系统的难度,准确表达用户需求,确保软件开发成功。系统的详细数据流图如图l所示.:£媚‘嫱牲0 ,瓤§图1拉深模CAD系统详细数据流图2系统结构的设计本系统由六大模块构成:主控程序、产品信息输入模块、工艺计算分析模块、模具设计与计算模块、模具三维图生成模块及专用数据库和图形库。(1)主控程序主控程序即程序管理程序,对各模块进行综合管理,用户通过此界面进入模具的其它各个模块,并对其进行操作。(2)零件信息输入模块零件信息输入模块将拉深件的几何尺寸和精度、材料和工艺条件等信息输入到计算机内,并存入数据库中,为后续设计提供拉深件的产品信息。(3)工艺分析与计算模块工艺分析与计算模块主要对零件的各个参数进行工艺分析,判断参数是否符合工艺条件,并确定工艺参数。计算出毛坯尺寸,判断是否能一次拉深成形,计算拉深次数、拉深系数、各工序的半成品尺寸、压边力、拉深力、拉深功,并将上述信息存入数据库中,为模具设计打下良好基础。(4)模具设计与计算模块模具计算过程包括计算凸、凹模尺寸、圆角半径,计算零部件尺寸等。设计过程包括确定模具结构类型的选择、工作部件的设计、辅助零件的设计及模架、标准件的选择。(5)模具三维图生成模块在三维绘图环境下,利用CAD软件生成模具零部件的三维实体模型,最后在此基础上装配成该模具的装配体,为用户的下一步工作(如生成二维工程图、CAD/CAM的集成等)做准备。以凹模为例,介绍其开发过程。SqStack s;InitStack(&s);prinff(”请输入一个任意字符串:ha”);scanf(”‰”.stO;forCi《strlcn(str);i++)Push(&s,s仃【i1);forCj《stricn(str);j++)Pop(&s,&str20】);if(strcmp(str,str2)一O)pri.tf【”是回文串ha”);clscprin氓”不是回文串、II”);}4结束语将给定字符串逆序存储以及判断一个给定字符串是否是回文,这两类问题,核心算法都是相同的,我们通过熟练运用指针,可以方便灵活的予以解决,对比给出的数组及堆栈的处理方法,指针解决方法简洁明了,易懂易用,易于移植和扩展到相关字符串问题中,便于触类旁通、举一反三。参考文献:.清华大学出版社,2005..福建电脑.2008年(01).吴琼.陈新文.关于指针数组与指向指针的指针教学研究.电脑开发于应用,2007年(总702).斟协论lij·2008年第12期(下l万方数据用C语言指针实现字符串逆序及回文串的判定作者: 裴晓英作者单位: 新疆兵团高等专科学校,新疆·乌鲁木齐,831300刊名:科协论坛(下半月)英文刊名: SCIENCE & TECHNOLOGY ASSOCIATION FORUM年,卷(期): 2008,""(12)被引用次数: 0次参考文献(3条)1.谭浩强C程序设计 20052.顾晓燕C语言中指针和指针教学-福建电脑 2008(01)3.吴琼.陈新文关于指针数组与指向指针的指针教学研究-电脑开发与应用 2007(总702)相似文献(10条)1.期刊论文吴琼.WU Qiong C语言指针教学方法研究 -鄂州大学学报2009,16(2)指针是C语言的精华和重要特色,理解指针的概念应从计算机存储系统硬件结构入手,它是C语言学习的重点和难点,数组也是C语言学习的重点和难点,针对指针数组与指向指针的指针这一教学难点.该文用图示方法将复杂的概念形象地表示出来,用对比方法阐释比较容易混淆的概念,通过简单实用的程序对比分析二者的应用,揭示它们的区别与编程意义.2.期刊论文王恒滨.闫东升关于C语言指针定义的讨论 -辽宁财专学报2004,6(2)在教学和实践中发现,C语言指针定义的信息量不足,难于解释指针使用的许多方面.本文大胆地剖析了已有的定义,从中找出问题所在,并试图加以改进.还结合实例给出了"拟构"概念,较好地说明了相关知识尤其是指针与数组的关系.3.期刊论文李忠武.Li Zhong-wu C语言指针探讨 -保山师专学报2005,24(2)结合实例从五个方面对C语言指针进行分析和探讨:阐述C语言指针的概念和正确使用指针变量,区分指针变量和指针的指向变量的含义和用法;通过判断变量与运算符*、和()的结合顺序来确定变量的数据类型及指向变量或成员变量的类型;指出指针与数组的关系,通过指针来访问数组元素和采用下标法数组元素的等价关系;作为函数参数的指针变量,可以改变所指向的主调函数变量的值;指针可以实现动态存储分配,用来实现对链表的创建、插入和删除等操作.4.期刊论文娄浩韬 C语言指针研究 -硅谷2008,""(2)指针是C语言的精华,抛开指针的C语言是没有生命力的.我们认为深入理解指针的本质含义,对指针进行理性分析和研究将有助于我们进一步加深对C语言程序编程的认识和应用.5.期刊论文陈建辉 C语言指针探讨 -莆田高等专科学校学报2001,8(4)结合实例从五个方面对C语言指针进行分析和探讨:阐述C语言指针的概念和正确使用指针变量,区分指针变量和指针的指向变量的含义和用法;通过判断变量与运算符*,和()的结合顺序来确定变量的数据类型及指向变量或成员变量的类型;指出指针与数组的关系,通过指针来访问教组元素和采用下标法数组元素的等价关系;作为函数参数的指针变量,可以改变所指向的主调函数变量的值;指针可以实现动态存储分配,用来实现对链表的创建、插入和删除等操作.6.期刊论文深入理解C语言指针 -内江科技2005,""(6)指针是C语言的精华和核心部分,充分体现了C语言的灵活性,增强了C语言的功能.本文从指针的定义、指针的功能及由于指针的使用带来的安全性等方面深入地分析了C语言的指针.7.期刊论文邓满英.DENG Man-Ying 浅析C语言指针 -襄樊职业技术学院学报2010,9(1)C语言功能丰富、使用灵活方便,主要体现在其指针灵活且无所不指上.指针是C语言的灵魂、精华与根本所在,其内容也是C语言的重点及难点.能否正确理解和使用指针是衡量学生掌握C语言的一个重要标志,也直接影响学生对《数据结构》和《操作系统》等后续课程的学习和把握.本文从指针的概念、指针的运算等来浅析C语言指针.8.期刊论文吴斌.WU Bin C语言指针的教学 -安徽职业技术学院学报2004,3(3)指针是C语言的低级语言特性.使用指针程序员可以按地址操作计算机内存,灵活实现一些特定功能;使用指针可以方便地表达复杂的数据结构,使程序简洁、高效、紧凑,指针是整个C语言课程的重点以及后续课程的重要基础.指针是C语言教学难点,在教学中采取适当的策略和方法完全可以取得较为满意的效果.9.期刊论文彭程.杨春生C语言指针操作技巧探讨 -中国高新技术企业2008,""(10)指针增加了我们控制程序的灵活性,但是指针使用不当就会出现野指针,危害整个程序的运行,所以在程序中使用指针时应十分小心,养成良好的编码习惯,避免出现野指针.10.期刊论文刘丽梅 复习C语言应注意的几个方面(之四)--针对CCT C语言指针部分 -承德职业学院学报2005,10(3)本文主要针对CCT中的C语言部分,在复习时应该注意的几个方面,以讲、例结合的方式作了详细的论述.
C语言指针写法
问题1那样写是错误的。问题2那样写也是错误的,数据类型不匹配。补充问题29是指针初始化的定义方式阿,p是指针类型,初始化时赋值就需要为选项D形式,若在初始化时未赋值,则可以写成:float *p; int x=1;p=&x形式。
更多文章:
联想thinkpad x300(联想thinkpadx300案例分析)
2024年7月11日 16:16
三星s5660怎么连接电脑(三星s5660怎么连接电脑主机)
2024年7月19日 16:16