c语言砍树
‘壹’ c语言中,int是什么意思
看了你的追问这么多我知道他们回答的不是楼主想要的。
先引来这段代码:
char*
//这是字符指针类型(所谓类型也就是附加char的一种),只有在定义时才这样写,就像你写int
一样。
问题:什么是指针?有何作用?在c语言在存的价值及意义是什么?
答:指针在计算机硬件中是不存在这个名字,而在计算机中只有地址。还是很混,为什么要区分开地址和指针搞的人不明白呢?因为计算机处理数据时候他都是按地址找到相应位置来处理的,就像你想去北京旅游你肯定想要找到地址才能去。比如你定义一个变量int
a=99;
编译器会知道是int型,分配2个字节大小来存储,在内存在的编号如是2000;
当你用printf("%d",a);
这时计算机的内存寄存器通过寻址找到2000这个地址,然后读取该地址上保存的数据99。所以在内存在内存中每个数据不是乱放起的而是通过编号统一管理的。
那指针呢,他与地址有何区别?我们所说的指针是针对程序中才能说这一词。为什呢?因为指针是专用来保存地址的变量即指针变量(在c语言中所有的数据内存地址数都是2个字节大小,一信可用sizeof()测一下,如sizeof(可写任何指针变量)
都是2)
。用指针变量访问一个数据就需要间接访问,而变量则可直接仿问。注意:什么是指针,什么是指针变量?指针即地址(程序中可这样说),因为上面所说了访问一个变量就是先找到该变量的地址。而指针是用来专用保存地址的,如:int
a=99;
int
*p=&a;
所以你访问*p的值也就是访问a的地址或是通过p保存的址值即a的地址来访问。
注意:在定义之后的*p,p是有区别的。输出p即输出p的地址,输出*p即输出该地址中的内容即值.
指针变量就是专用存放地址的变量叫指针变量。因为计算机内存处理数据最终是物理电路是操作的,所以终归转化为地址,因为每条内存都有相应的编号,.这符合人们的思想.用指针地址处理运行程序速度快、使用灵活。
char*
//定义所有数据类型只要是指针类型都是2个字节,那么前面的char,int那些关键字有何用呢?因为类型匹配,每个数据占用的内存空间大小不一的。
*a
//*a
表示读取该a的地址的值是多少
char*p
*p=&c分别都是什么意思
//
你这段代码是错的。*p是表示读取值,而p是表示读取地址,要区分明白。&c以"&"开头的表示该变量的地址,&c表示c的地址。你将一个地址赋给一个*p即用来存值的变量显然不符合。
所以应该是
*p=c;
//值与值赋
在初始定义时可写成
char
*p=4;
//这也值与值的赋
p=&c;
//地址与地址型赋
在初始定义时可写成
char
*p=&c;
//这也行。
若还不明白本人劝你没必要追究到底,等你学到后面会越学越明白的,计算机原理,编译原理等等。
还有问题请回复^
_
^
‘贰’ c语言中int*代表什么意思
C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同。
在32/64位系统中都是32位,范围为-2147483648~+2147483647,无符号情况下表示为0~4294967295。
(2)c语言砍树扩展阅读
matlab中
int用于符号∫
int(s)符号表达式s的不定积分.
int(s,v)符号表达式s关于变量v的不定积分.
int(s,a,b)符号表达式s的定积分, a,b分别为积分的下限和上限.
int(s,v,a,b)符号表达式s关于变量v从 a到b的定积分.
当int求不出符号解,会自动转求数值解。
‘叁’ 学会使用VC就会C语言吗
vc是个ide
只是个开发环境!
你会使用并不代表你会用C语言!
C语言是一个编程语言!
vc好比是一个干农活的工具
C语言就是你的农活技能!
你有一只斧头并不代表你会砍树
你必须安下心来学C语言
‘肆’ perl语言与c相比如何
C可以做所有的事情,Perl能做的事情,C都能做。但是用C语言完成很多日常工作,就像在拿匕首砍树。而在很多日常工作中,Perl都是电锯。
每种语言都有自己的适用范围,没有谁好谁坏的问题。
C语言可以开发操作系统,编译器等等,甚至Perl语言本身都是用C语言写的。
因此Perl语言比C语言更加高级,但碰到了硬茬子,还得动用C语言。好在这两种语言可以结合一起用。
你可以先学C语言,再学Perl。
Perl的语法和C很相似。
‘伍’ 学习c语言的困惑
你只停留在语言的学习阶段,当然不知道体会不到编程的乐趣。
光学语言是非常理论化的工作,因为语言本身是别人设计好的规则而已,是个程序员都会。学好规则有利于你在实际运用上的发挥。
你可以尝试着不是看书,而是自己去根据需要做一些增强型的小程序。
比如写一个自动关机程序,你可以自己去设计一个独特界面,自己额外添加各种功能,当你遇到困难,然后努力去解决困难的时候,当你发现你的程序确实和别人的程序不一样甚至更好的时候,你就会有成就感了,因为你是独一无二的。要是觉得还不过瘾,那么推荐你下下别人的代码,自己编译编译,运行一下看看。毕竟一个程序的产生需要花费许多时间和人力的,通常的商业软件都不是一个人能做得出来的。
至于你说的C语言可以编写操作系统,linux内核写的如何如何的好,那个与你现在的水平还是相差巨大的,真正能写操作系统的能有几个?linux的源代码只是给那些需要进一步提高的人或者有兴趣的人看的,很多高手都没有看过那些代码,是否学习那些代码需要你自己根据自己的实际情况来定。
‘陆’ C语言和C++、C#的疑问!非常大的疑问!
系统是用C++编写的 至于编译不是你想象的那么简单 .DLL文件是动态连接库
这个就看你要不要往深了研究它了 什么语言的功能都强大 只要你能挖掘出来
C语言就不做介绍了 相信每个程序员最初接触的都是C 也都明白
C++主要是底层的开发 现在几乎没有用C++做应用的 企业级的应用主要就是.NET和J2EE两个平台 不过个人认为.NET的功能更强大 因为毕竟.NET是踩着J2EE过来的 在它基础之上的 .NET的类库比J2EE全 还有很多优点就不一一说了 另外我觉得最好的就是Visual Studio.net 曾荣获过多项大奖 功能非常大的 不像J2EE平台的那么多软件 很散乱很头疼
最后建议你 你提到的Turbo C 我觉得你如果做C程序还是VC++比较好 你可以试一下 Turbo C不支持中文 而VC++支持中文 最主要的一点我觉得VC++可以规范你的代码 而不会像Turbo C那样自己去手动的规范代码。
‘柒’ 有什么好用的c语言入门书籍吗价格在5-30之间最好了。本人资金问题
我从来不推荐谭浩强的书
推荐你C语言发明人写的书《C程序设计语言》,原着是《The C programming language》
各大网上书店有售,原价30,亚马逊7折,21就够了
‘捌’ C++语言一定比C语言先进吗
对于程序语言来说我觉得不能说谁比谁更先进,C++和C的出发点就不同,C++之父也说了: C++的出现是为了使程序员更快乐和轻松。
我想这话的意思应该很容易理解。C++主要是为了解决软件工程类问题,大的应用程序,不是说用C不能编,只是编码不容易维护,而且容易出错。
另外还有C++的模板,这可以说是C++最大的特性,如果要谈软件工程性和代码的可复用程度,我觉得C++应当排第一。
操作系统用C写是有其原因的,在操作系统的编写过程中,效率始终都要放在第一位考虑,而且操作系统的主要工作就是和底层、硬件打交道,而C说白了就是一种高级汇编语言,其过程式编程几乎和底层的汇编表示相同,所以用C编操作系统可以很好地把握底层的实现细节和对硬件的良好操作。
另外二楼的,编译速度?应该是运行速度吧。
当然这并不表示C++不适合编写操作系统。
“我学过c++语言,但是我觉得C++的很多东西没有什么必要,只会把程序写得越来越复杂,越来越难懂。大家觉得学精通了C语言是不是一定要学C++??”
—— 这只能说明你还没有掌握C++(更别说精通了),如果你了解一些C++的发展历史,你就不应该说出上面的话了,完全没必要和没用的东西,你觉得C++还会将他们加入进来吗?把程序写地复杂和难懂的是人,不是语言,你不应该把抱怨嫁祸给C++。
的确,C++的许多库,用到了非常复杂的技术,特别是模板所带来的一些另人叫绝的高招,但这并不是C++有意引入的,而是精英和C++鬼才们发现的新大陆,可能“语言大师”这个称号只会出现在C++领域里。
但这些库的作者也没有想要你读懂他们的代码,想想标准库STL,它的实现的确很复杂,整个STL中没有用到一个虚方法,而是用模板的功能以tag的形式进行实例化,其技术是很复杂,但是它难用吗?
再看看boost,别的不说,就说lambda吧,用到的是模板表达式技术,看看其实现,复杂,太复杂了,但是用起来会觉得不舒服吗?
如果对目前C++中的许多不足之处仍有顾虑,那么请了解一下下一代的C++吧,据说是C++09,如果你看过之后不会心动的话,只能说明你根本不懂C++。
PS一句,当前的主流语言如C#、java等的发展,暗地里其实都或多或少都受了C++的引领。
精通了C,如果你觉得可以解决所有问题,你可以选择放弃C++。
没有洗衣机的时候,我们用搓衣板洗衣服,没有电锯的时候,我们用斧子砍树,洗衣机复杂吗?复杂,我看不透它,电锯复杂吗?复杂,至少我仿造不出来。但你能说他们没用吗,或者你能说搓衣板和斧子就被淘汰了吗?
这个世界不是线性的,你眼里的牛粪说不定就是他人眼里的花朵(当然夸张了点),但前提是你有自己对其有理有据的说法,我自认为在我哥的熏陶下,还算了解一点C++,所以我敢说出这些话,调查了才有发言权嘛,呵呵。
‘玖’ 关于c语言的
有一个办法就是建一个布尔类型的数组,bool result[100],这样,初始值设为true。然后读入每一组整数(a,b)之后,就把数组中从a到b之间的值设为false,三组读完后,就统计一下还有几个true,就是几棵树了。(a,b)应该不算第a棵和第b棵
‘拾’ C语言功能
汇编明明能处理所有事情,但我们绝大多数时候用高级语言来写程序,除了高级语言更安全、更抽象的原因外,代码量是一个很重要的因素.
比如,我们学过了+-法,可以处理所有的低等数学运算了,那为什么还要学*/法呢?就是在计算特殊公式的时候(这里指多个重复值相加),我们可以通过一次m*n代替m+m+m..+m的n-1次加法,这样无论是在书写上还是时间上不都大大节省了效率吗?
c#,c++,java提供了大量供解决具体问题的类库,这样在程序员要解决某种问题的时候,不用再去进行具体的底层操作,而直接调用系统封装好的步骤就好了,而且这些系统提供的类库,在运行效率和安全性上,比之程序员自己写的程序,可能会有不少优势.这样程序员就完全从底层繁复的操作中解脱出来,完全着力于高层设计.
比如,要求三个数a、b、c中的最大值,按照一般的数学方法,我们可以先求出a,b中的最大值,再求出这个最大值与c之间的最大值,得到的就是最终结果.这就是c解决问题的方法.但如果你是一个c++程序员的话,你通过查资料直接知道存在一个函数,max(a,b,c)就能一步得到最终结果,那不是更好吗?而且类似的大量工作在c++/java/c#都可以利用专业人员做好的函数库等来简化代码量,我想相当部分的人都愿意学习这种处理问题的方法吧.
恩,上面这只是举的一个例子,不过我想能够在一定程度上说明既然有了汇编/c这类万能的语言,为什么还会出现其他在此语言上延伸出来的新语种的原因.
刀有菜刀、镰刀、兵器的刀,就是因为他们对处理专门的问题有优化,虽然水果刀也能割草、也能切菜、也能伤人,但我们不愿意在做这些工作的时候去费力的使一样不顺手的事物吧.
如果刚学习c语言的话,建议认真学吧
这是一门很强大的语言,理解了它处理事物思想,你将来涉猎其他程序语言的时候也会十分轻松.