C语言
斜阳雨陌
你有多努力,就有多特殊!
展开
-
linux和GNU之间的关系
Linux只是一个操作系统内核而已,而GNU提供了大量的自由软件来丰富在其之上各种应用程序。因此,严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。基于这些组件的Linux软件被称为Linux发行版。一般来讲,一个Linux发行套件包含大量的软件,比如软件开发工具,数据库,Web原创 2017-07-29 17:46:46 · 6885 阅读 · 0 评论 -
请求地址操作中的(int*)
例如float b=3.14,*a=&b;int *p=(int *)a; 表示将指针a的类型转换为整型指针再赋给p。原创 2016-08-01 21:23:09 · 567 阅读 · 0 评论 -
在不使用{}时,else执行到哪里结束
正常情况下,if-else语句使用{}.执行时也执行{}里面的所有语句,但是当语句比较简单时,可以不使用{},而直接在if或else的后面写要执行的语句。但是程序只会执行到if或else语句后的第一个“;”其余的程序不在if-else的程序范围内。原创 2016-08-12 20:35:32 · 870 阅读 · 0 评论 -
C语言中的“>>”和“<<”
先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用 int i = 1; i = i 也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2位之后变成 000...0100,也就是10进制的4,所以说左移1位相当于乘以2,那么左移n位就是乘以2的n次方了(有符号数不完全适用,因为左移有可能转载 2017-08-09 16:24:00 · 120101 阅读 · 7 评论 -
c语言scanf返回值
1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b); 如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量); 如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。 2) 0,表示用户的输入不匹配,无法正原创 2016-07-09 21:39:56 · 4907 阅读 · 0 评论 -
值传递与地址传递
值传递与地址传递的区别:两者其实传递的都是一个内存单元的内容。不同的是,值传递传递的内容是一个变量的值,得到这个值后,对这个值的修改不能改变原变量的值;而地址传递传递的是一个变量的地址,得到传递的地址值后,可以通过这个地址直接访问地址对应的那个变量,进而修改那个变量的值。值传递只是将变量的内容复制一份而已,函数进行操作的其实是另一个变量,只是另一个变量的值和传递的变量值是相同的。而地址原创 2016-07-11 21:29:40 · 4303 阅读 · 0 评论 -
形参和实参
形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。没有形参的函数在形参表的位置应该写void.main 函数也可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。实参:可以是常量原创 2016-07-13 20:18:08 · 387 阅读 · 0 评论 -
C语言中*和&
(一)在定义时,* 是一个标识符,声明该变量是一个指针,比如说int *p; 那p就是一个指向int型的指针;在调用时,(1)*p是指指针p指向的那个变量,比如说之前有int a=5;int *p=a;那么p的值是a的地址,也就是指针p指向a,*p则等于a的值,即*p=5。(2)&,则是引用,比如说有定义int a=5;再定义int b=&a;那么这里的b则引用a的值,即b=5原创 2016-07-13 20:26:40 · 10176 阅读 · 6 评论 -
C语言中* 和 &
&x是对x变量取地址,也就是返回的是x的地址。int *i;这里面的*说明变量i是一个指针,存的是一个地址。而 *i整体代表的是一个数值,例如可以int *i = 5 这里整体的*i代表的是5,而i代表的是这个值存储的地址原创 2016-07-03 21:37:00 · 622 阅读 · 0 评论