C学习心得
飘过的小牛
不停成长才会洞悉成功的奥妙,fighting!
展开
-
输入外挂
int Scan(){ int res = 0, ch, flag = 0; if((ch = getchar()) == '-') //判断正负 flag = 1; else if(ch >= '0' && ch <= '9') //得到完整的数 res = ch - '0'; while((ch = getchar()) >= '0' && ch <= '9'原创 2011-08-15 16:57:39 · 6182 阅读 · 5 评论 -
深入了解scanf/getchar/gets/cin等函数
scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因。下面先看一个很简单的程序:程序1: #include int main() {char ch1, ch2;scanf("%c", &ch1); scanf("%c", &ch2);p原创 2011-05-10 21:37:00 · 2699 阅读 · 3 评论 -
sscanf()函数小结
1. 常见用法。char buf[512] ;sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!printf("%s\n", buf);结果为:1234562. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。sscanf("123456 ", "%4s", buf);prin原创 2011-10-09 18:36:35 · 1246 阅读 · 0 评论 -
C/C++ char和int的区别
字符字面值一般是用一对单引号来表示。char类型一般就是用字符字面值来初始化、赋值。由于char类型的是单字节长度,当给char类型的变量用字符字面值赋值时,当单引号里面的内容超过一个字节时,系统会自动截取一个字节的内容给char变量,忽略其他的字节内容。比如char a='1234';c++会认为单引号里的每一个数值都看做一个字符字面值,也就是说1 2 3 4各占一个字节,'1234'也就是转载 2012-04-24 22:46:35 · 16173 阅读 · 2 评论 -
C语言——第八章
这一章没有怎么仔细看,其实也很简单,记住格式就行了。等不会的时候可以翻书看一下就OK了。到此为止,谭浩强的这本书已经看完一遍了,找到了10个左右的错误,感觉有点惊讶。后天C语言的圣经就买回来了,到时候再认真看看那本吧(评价极高啊~圣经Orz)!一.C语言的标准I/O库中定义了3个FILE型指针:stdin(标准输入文件)、stdout(标准输出文件)和stderr(标准原创 2012-03-01 11:37:56 · 1529 阅读 · 0 评论 -
C语言——第七章
一.在计算机中,位(bit)是表示和存储信息的最小单位,1B=8bit。C语言提供一种在位一级进行操作的机制。它允许在一个结构体中以位为单位来指定其成员所占内存的长度,这种以位为单位的成员称为“位段”,或“位域”。例如:struct a{unsigned aa: 1;unsigned bb: 1;unsigned cc: 1;}s;这个结构体类型与前面的结构体类型的原创 2012-03-01 08:56:32 · 1235 阅读 · 0 评论 -
C语言——第四章
一.程序进行编译时,并不为形式参数分配存储空间。只有在函数被调用时,形式参数才临时的占有存储空间,其过程如下:1.调用开始,系统为形参开辟一个临时存储区,形参与实参各占有一个独立的存储空间。2.然后将各实参之值传递给形参,这时形参就得到了实参的值。这种虚实结合方式称为“值结合”3.函数返回时,临时存储区也被撤销。要特别注意的是:函数中对形参变量的操作不会影响到调用函数中的实参变原创 2012-02-27 09:10:13 · 1789 阅读 · 0 评论 -
C语言——第三章
一.算术运算符都低于纯算术类运算符,高于赋值类运算符,并且它们结合方式都是从左到右的。例如:int x = 2, y = 3, z; z=3-1>=x+1这个表达式包括赋值、关系、算术三种运算。其中赋值运算的优先级最低,其次为关系运算,算术运算的优先级最高。因此,先进行算术运算,得:z=2>=3,然后计算2>=3,为0(假),得z=0,再计算0,其值为1(真),所以z的值为1.原创 2012-02-25 17:30:44 · 1588 阅读 · 0 评论 -
C语言——第二章
一.在内存中存储定点数时,一般以其最高位(最左边一位)表示数的符号,0表示正,1表示负。数值是以补码形式存放的。一个正数的补码就是该数的二进制数。一个负数的补码我们通过下面的方法求得:(1)先取该数的绝对值(2)然后以二进制数的形式存放(3)再对其取反(4)然后加1所有负数的二进制补码的最高位必然为1.显然,无符号的正数的最大值约为有符号的正数的最大值的两倍再加1(因为原创 2012-02-25 16:02:52 · 1682 阅读 · 0 评论 -
C语言——第一章
一、高级语言程序的开发过程1.分析问题,建立模型2.表现模型3.源程序的编辑4.程序的编译(或翻译)与链接把用高级语言编写的程序称为源程序,把机器可以直接辨认并可执行的程序称为可执行程序(1).第一步在程序编辑过程中,所输入源文件中的是一些字符码,但是机器能够直接处理的是0、1信息。为此,首先要将源程序文件翻译成0、1码所表示的信息,应用相应的文件保存。这种保存0、1码原创 2012-02-24 10:02:10 · 1785 阅读 · 0 评论 -
C语言——第六章
一.变量存储空间的分类顺序先声明的变量后分配存储空间;撤销的顺序与之相反:先建立的后撤销。这种机制就称为栈机制,好像往一个只能允许进出一个盘子的桶里放盘子,先放进的后拿出。在C语言程序中,局部变量就被分配在栈区,而且是以高端为栈底建立的。所以后建变量的地址较小。每个变量只有一个地址,但占用的空间不同二.一个指针所指连变量的类型,称为该指针的基类型。三.指原创 2012-02-29 09:10:40 · 1162 阅读 · 0 评论