c语言输出控制中输出变量控制问题

C语言变量类型与输出控制用法实例教程
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了C语言变量类型与输出控制用法,是C语言程序设计中比较基础也是比较重要的用法,需要的朋友可以参考下
本文实例讲述了C语言变量类型与输出控制用法,有助于读者很好的对其进行总结与归纳。该实例分享给大家供大家参考借鉴之用。具体如下:
完整实例代码如下:
/**********************************************
**《Beginning C 4th Edition》Notes codes
** Created by Goopand
** Compiler: gcc 4.7.0
***********************************************/
#include &stdio.h&
int main(void)
/*八进制、十六进制整数的表示*/
int i1=024;
//八进制数以数字0开头
int i2=0xF0;
//十六进制以0x或0X开头
printf("[Output]\n");
printf("八进制数024的十进制值为:\t%d\n",i1);
printf("十六进制数0xF0的十进制值为:\t%d\n",i2);
/*浮点型的表示及格式化输出*/
double f1=1E1;
double f2=0.3E1;
/* %-10.6lf表示输出长度共占10位,负号表示左对齐,按照%lf双精度浮点型输出,并保留至小数点后6位 */
printf("\n[Output]\n");
printf("%.1f/%.1f = %-10.6lf|\n",f1,f2,f1/f2);
//竖线符"|"用来标明末尾位置
/*常量的定义*/
const float PI = 3.8f;
printf("\n[Output]\n");
printf("PI is: %.7f\n",PI);
/*研究一下printf()函数的返回值*/
char c1='a' , c2='b' ;
printf("\n[Output]\n");
printf("测试printf()函数的返回值\n");
printf("%d\n",printf("%d",printf("%c%c",c1,c2))); //printf()函数的返回值是输出字符的个数
/*字符型的ASCII码表,包括转义字符*/
char ch1=0; //初始化为null
printf("\n[Output]\n");
printf("Int型和Char型的ASCII编码对应关系\n");
printf("\tInt\tChar\n");
printf("\t----\t----\n");
for(int i=0;i&128;i++)
printf("\t%d\t%c\n",i,ch1);
感兴趣的读者可以测试运行一下本文实例,相信会有新的收获。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具查看: 2663|回复: 1
c语言中的全局变量问题
&猛然间从前不是问题的问题成为了最主要的问题:c语言中的全局变量。可能大家对这个不是太了解,因为无论是老师说的还是课本上印的都是尽量少使用全局变量。之前从考试的角度说对这句话有印象,不过当用的时候早就抛九霄云外了。所以一直没留意。如果仔细观察你会发现在单片机编程中充斥着各种各样的全局变量甚至是全局变量的初始化,由于本人能力有限,所以解决这两个问题主要是引述在论坛上各位大虾的言论。以此来自勉以及为日后的复习工作做准备。1全局变量,据说你很危险?第一点:我不同意楼上几位关于全局变量和单件模式的论述,虽然单件模式是通过全局变量实现的,但是很明显全局变量并不等于单件模式 听你们说的总感觉很别扭,...全局变量有很多弊端,比如说全局变量维护起来不是那么清晰,别人看你的代码也会觉得不那么直接,如果很多地方用到,到处都是extern,处理中如果出了问题,排查也增加了自己的复杂? 所以说应该尽量避免使用,但也不是绝对不能用,当有些时候想不到更好的替代方案时,该用还是要用,另外goto语句也是一样。&存在及合理,但只有在合适的情况下才使用,比如为了提高效率,在单片机程序,arm程序,dsp程序里面,全局变量满天飞不过在pc机上,随着机器性能越来越高,这个已经不是最关注的问题,设计者更应注重程序的可维护性和可扩展性,而全局变量往往会破坏这些,所以应尽量避免。人生都是在取舍 程序 ,全局变量的使用根据你的情况自己考虑是用还是不用。如果变量使用不多 获取指针又比较方便 为了安全起见 还是定义成局部的好。&以前敏捷开发的要求要重构。说函数要短,可复用性要高。我也以为这是圣经。后来到了单片机里这样做就是傻瓜了。因为单片机里边进一个函数就要进栈出栈,白白浪费时钟周期,本来没必要的函数调用能省就省了。而且很多时候根本没有那么多临时存储的地方给你用。想疯狂调用函数,玩个递归啥的,还是免了吧。。。全局变量么,能用就用吧。因为如果全局就占一个存储空间,分散了之后没准就需要几个。划不来。变量名字也往短了起,计算上的东西就已经很头大了,再搞一堆长长的名字真是打扰心情。还有中断,才知道多么珍贵,要严格控制不要两个同时进来,而且中断函数不能重入。。。反正,具体应用很关键。不能形而上学。。。控制全局变量的总量,太多了要出麻烦全局变量是一把双刃剑,?使用全局变量还是指针来作为函数数据访问的接口要看什么时候、怎么用还要自己慢慢摸索。&&2.全局变量的初始化关于全局变量的初始化,c语言和c++是有区别的。在c语言中,只能用常数对全局变量进行初始化,否则编译器会报错。在c++中,如果在一个文件中定义了int a = 5;...对于不同编译单位的全局变量,其初始化的顺序没有任何的保证,因此对不同编译单位里的全局变量,在它们的初始化顺序之间建立依赖性都是不明智的。此外也没办法捕捉到全局变量初始化抛出的异常,一般来说要减少全局变量的使用,特别是限制那些要求复杂初始化的全局变量。so: 1,尽量不用全局变量2,用静态变量,通过访问器进行访问例如:全局变量int a = 5;int b =如果a,和b定义在同一个文件里,那没什么问题,结果b等于5.如果a和b定义在不同文件里,就不能保证b也等于5,也就是说不能保证a先初始化.事实上,除了在同一个文件定义的全局对象的初始化是按照定义次序来进行的之外,其他全局或静态变量之间的初始化次序没有任何保障。解决这种问题的方法是不直接使用全局变量,而改用一个包装函数来访问,例如int get_a(){static int a = 5;}int get_b(){static int b = get_a();}这样的话,无论get_a和get_b是否定义在同一个文件中,get_b总是能够返回正确的结果,原因在于,函数内部的静态变量是在第一次访问的时候来初始化。任何时候,如果在不同的被编译单元中定义了"非局部静态对象",并且这些对象的正确行为依赖于它们被初始化的某一特定顺序,就会产生问题.你绝对无法控制不同被编译单元中非局部静态对象的初始化顺序.对于函数中的静态对象(即"局部"静态对象)它们在函数调用过程中初次碰到对象的定义时被初始化..PS:千万不要写出和编译顺序相关的程序来。关于全局变量的初始化,C语言和C++是有区别的。在C语言中,只能用常数对全局变量进行初始化,否则编译器会报错。在C++中,如果在一个文件中定义了int a = 5;要在另一个文件中定义int b =的话,前面必须对a进行声明:否则编译不通过.、即使是这样,int b =这句话也是分两步进行的:在编译阶段,编译器把b当作是未初始化数据而将它初始化为0;在执行阶段,在main被执行前有一个全局对象的构造过程,int b =被当作是int型对象b的拷贝初始化构造来执行。其实,准确地说,在C++中全局对象、变量的初始化是独立的,如果不是象int a = 5;这样的已初始化数据,那么就是象b这样的未初始化数据。而C++中全局对象、变量的构造函数调用顺序是跟声明有一定关系的,即在同一个文件中先声明的先调用。对于不同文件中的全局对象、变量,它们的构造函数调用顺序是未定义的,取决于具体的编译器。
来占座的。。。
Powered by欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 6168 人关注过本帖
标题:在调用函数里面的变量的值怎么才能在主函数里面直接输出
等 级:新手上路
&&已结贴√
&&问题点数:5&&回复次数:7&&&
在调用函数里面的变量的值怎么才能在主函数里面直接输出
在调用函数里面的变量的值怎么才能在主函数里面直接输出?
void biaozhun(int g)
&&&&&&&&w=vemulti(g,g);
&&&&&&&&y=sqrt(w);printf(&y=%.5f&,y);
&&&&&&&&if(y!=0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& y=1/y;
&&&&&&&&&&&&&&& for(i=0;i&m;i++)&m;i++)
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&a[i][g]*=y;
&&&&&&&&&&&&}}&n;++j)
调用函数里面biaozhun(int g)里面的y值怎么能在主函数里面输入&/n;j++)
搜索更多相关主题的帖子:
来 自:zzu
等 级:蜘蛛侠
帖 子:302
专家分:1032
请问楼主,这是C语言程序吗?我虽然也是菜鸟,但见过的程序应该也不算少了,但还从来没见过类似&n;j++)的符号,解释下吧!
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
我也感觉好奇怪啊。。
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2389
专家分:13384
根据问题的文字描述,你把函数定义有返回值的类型,比如int,然后用return进行返回,
来 自:江西
等 级:侠之大者
帖 子:251
专家分:492
等 级:新手上路
回复 2楼 Explorerlxz
粘贴出错了
void biaozhun(int g)
&&&&&&&&w=vemulti(g,g);
&&&&&&&&y=sqrt(w);printf(&y=%.5f&,y);
&&&&&&&&if(y!=0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& y=1/y;
&&&&&&&&&&&&&&& for(i=0;i&m;i++)
&&&&&&&&&&&&&&& a[i][g]*=y;
&&&&&&&&&&&&}
等 级:新手上路
回复 3楼 zklhp
void biaozhun(int g)
&&&&&&&&w=vemulti(g,g);
&&&&&&&&y=sqrt(w);printf(&y=%.5f&,y);
&&&&&&&&if(y!=0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& y=1/y;
&&&&&&&&&&&&&&& for(i=0;i&m;i++)
&&&&&&&&&&&&&&& a[i][g]*=y;
&&&&&&&&&&&&}
等 级:新手上路
回复 4楼 邓士林
额。。不是很明白 捏。。&&你是说 return y值 么?
void biaozhun(int g)
&&&&&&&&w=vemulti(g,g);
&&&&&&&&y=sqrt(w);printf(&y=%.5f&,y);
&&&&&&&&if(y!=0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& y=1/y;
&&&&&&&&&&&&&&& for(i=0;i&m;i++)
&&&&&&&&&&&&&&& a[i][g]*=y;
&&&&&&&&&&&&}
版权所有,并保留所有权利。
Powered by , Processed in 0.060083 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved}

我要回帖

更多关于 c语言输出控制 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信