入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

C语言编程经典题目及其详解Linux下3道

创建时间:2018-02-22 投稿人: 一叶落无尘 浏览次数:220

C语言是面向过程的,而C++是面向对象的

C和C++的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

C语言编程经典题目及其详解Linux下3道

本篇文章清算了3道Linux下C说话的经典问题问题,并附上了详细的分析。希望以此大师可以更好的理解C说话,接待大师会谈匡正。

1、若是在Linux下使用GCC编译器实行下列轨范,输出成效是什么?

C语言编程经典题目及其详解Linux下3道

输出成效:4321

轨范分析:

轨范先输出43,然后紧接着输出printf函数的前往值。printf函数的前往值是输出字符的个数。所以在实行完最里面的printf("%d",i)输出43之后,接着输出printf("%d",43)的前往值即2,末了再打印printf("%d",2)的前往值即1。所以末了的输出成效是4321。

2、若是在Linux下使用GCC编译器实行下列轨范,输出成效是什么?

C语言编程经典题目及其详解Linux下3道

输出成效:1020

轨范分析:

当i = FFFFFF00H 的时辰,才有""出现(由于char类型只占一个字节,当 i = FFFFFF00H 的时辰,末了一个字节就是00H,也即""),C气概字符串读到""就停止了。FFFFFF00H 是 -256,就是 i 的值为255时 a[i] = FFFFFF00H,是以终极输出成效是255*4=1020(a[0] ~ a[254]统共255个整型)。

3、若是在Linux下使用GCC编译器实行下列轨范,输出成效是什么?

C语言编程经典题目及其详解Linux下3道

输出成效:

十进制c=-128

十六进制c=0XFFFFFF80

轨范分析:

128的十六进制是0x80, 也就是2^7, 二进制看起来像如许:1000 0000 ,赋值给有符号数char c,其二进制不变。

可是小于sizeof(int)的整数在使用时其实都是扩展到sizeof(int)再计较的,对付有符号数扩宽填充符号位,这里char c=128的符号位是1,所以就是扩大了1111 1111 1111 1111 1111 1111 1000 0000,如许,打印%x时辰,就是你看到的成效了。

这个扩宽是很正常的,并不会影响一个数值本身, 只是存储的字节变宽了罢了。

符号位为1的二进制转十进制负数

C语言编程经典题目及其详解Linux下3道

①撤除符号位减1;

②撤除符号位,按位取反;成效就是负数的原码;

③原码转成相应的十进制。

由于符号位为1,所以被当做负数,而负数是以补码情势存在的,

所以其反码是1111 1111 1111 1111 1111 1111 1000 0000 - 1=1111 1111 1111 1111 1111 1111 0111 1111

原码是 1000 0000 0000 0000 0000 0000 1000 0000 转化为十进制是-128。

末了,上述3道Linux下C说话的经典问题问题只为更好的理解C说话相干知识,固然在实际项目中不会出现近似代码,接待大师商讨匡正。

这些是C/C++能做的

服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了