博文

<<湖南农民运动考察报告>>读书笔记(2012-02-01 22:14:00)

摘要:<<湖南农民运动考察报告>>读书笔记 ――农民运动及文革       一九二六、二七年间,毛泽东开始主张深化农村土地革命,发展农民运动。这期间组织起来的农会不同于旧时期的农会,具有社会变革的性质。 然而在这场轰轰烈烈的农民革命中,代表地主利益的国民党右派不满农民协会的行为,力求将农民协会纳入到传统之中。共产党中以陈独秀为代表的右倾机会主义,也希望通过规范农民协会的行动来换取与国民党的统一战线。因此,在中共中央政治局一九二六年十二月汉口特别会议后,对湖南等地的农民运动进行了限制和打击。 于是,一九二七年上旬,毛泽东亲自深入农运的蓬勃地区――湖南,作了本篇考察报告。 对于完全不了解时局的我来说,初读毛公这篇报告,确实有许多疑虑和不解,尤其是在农运和文革的比较问题上。但通读下去,却渐渐被他细致的考察和条理清晰的报告说服了。 一、农民的问题     报告中,毛公先是开门见山,直接指出了革命当局对农运情况的认识是有悖于现实的,继而敲响警钟,说明农民问题的严重性以及急迫性。在这第一部分,毛泽东已经表明了他的立场――“一切革命的党派、革命的同志,都将在他们(农民)面前受他们的检验而决定弃取”――即是说,他认为,在这个时局变动的拐点,农民是决定历史的主体力量。 二、运动的成果     接着在“组织起来”和“打倒土豪劣绅,一切权利归农会”两部分中,毛泽东大致描绘了湖南农运从源起到兴起的过程。从中我大致了解到,农运以地主阶级为主要斗争对象,收归了包括政治权益在内的一切权力。这里,毛公向读者展示了农运的成果――“无论什么人,都承认去年十月以前和十月以后是两个世界”,是给右倾者的第一道答复。 三、革命是暴动――疑惑     说清了农运带来的实质性改变之后,毛泽东又对反对者的观点提出了针对性的回答。 一是,一部分人不敢面对社会变革、对局势日变动感到不安与恐惧,从而做出“糟的很”的结论。毛泽东毫不留情地指出,这是反革命的理论。二是,一部分人对革命有恐惧心理。但是毛泽东认为封建主义是根深蒂固的,故需以极大的力量去“矫枉过正”,即是,他认为要坚决暴力革命,反对改良。 读到这里,我......

阅读全文(4358) | 评论:0

苦逼的html(2012-02-01 09:44:00)

摘要:
今天因爲作業 寫了一張html。
短短的一頁居然打了100多行。
有什麽模式可以更高效地排版呢?
還有就是我應該更正心態——我比較認爲html只是標記語言沒有思想。
在網上看別人網頁的源碼非常簡潔,我還有很多沒有學習。
也不妨探究一下標記語言的内在思想。
......

阅读全文(1291) | 评论:0

堆和栈的区别(2012-02-01 00:34:00)

摘要:堆和栈的区别
一、预备知识—程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 
4、文字常量区—常量字符串就是放在这里的。 程序结束后由系统释放
5、程序代码区—存放函数体的二进制代码。
二、例子程序 
这是一个前辈写的,非常详细 
//main.cpp 
int a = 0; 全局初始化区 
char *p1; 全局未初始化区 
main() 

int b; 栈 
char s[] = "abc"; 栈 
char *p2; 栈 
阅读全文(2700) | 评论:3

控制字符串输入的方法汇总(2012-02-01 00:30:00)

摘要: #1 while(1)
{
        if((c=getchar) == '\n')
             break;
         ...
} #2 while( (c=getchar()) != '\n' )
Attention: c=getchar()要用( )括起(大概是因为 != 优先级高于 =) Thinking:      char c;     while((c=getchar())!='\n')
          printf("%c",c);
    return 0;这段代码是输入结束之后再输出,是否是因为堆栈之类的原因? #3 char *sPtr; gets(sPtr);
  ......

阅读全文(1180) | 评论:0

字符串转化为数字(2012-02-01 00:23:00)

摘要:6.1.2  字符串转化为数字 面试例题3:使用库函数将字符串转换为数字。 考点:C库函数中字符串转换为数字的使用。 出现频率:★★★★ 解析 与上节数字转换为字符串类似,C/C++语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)。以下列举了各函数的方法及其说明。 atof():将字符串转换为双精度浮点型值。 atoi():将字符串转换为整型值。 atol():将字符串转换为长整型值。 strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。 strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。 strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。 以下程序演示如何使用atoi ()函数和atof ()函数。
1 # include <stdio.h>
2 # include <stdlib.h>
3
4 int main ()
5 {
6 int num_int;
7 double num_double;
8 char st......

阅读全文(1284) | 评论:0

C表达式的值(2012-02-01 00:18:00)

摘要:首先他们都是逻辑运算。如果在数学方面不是运用在逻辑方面的话,c>b>a他就相当于一个常量,也就是一个已知数,也就是C最大,B其次,A最小,如果运用在逻辑判断的话,因为他们的优先级相同,先判断出C是否大于B,得出的结果为逻辑是和否,也就是1和0,然后再用1和0去与A比较大小,同样得出1或者0。但此时的ABC三个数字都必须是个已知数,不然它只能是个命题,不能判断真假。而在C语言中,无论它是变量还是常量都可以做出判断,如果是常量的ABC做比较,判断的是他们的ASIC值的大小,优先级相同都是从左至右判断,返回结果也是逻辑1或0.如果是变量做比较也是相同的道理,只不过他们比较的是变量的值。 a<b?a:c<d?c:d从右往左先看c<d?c:d 问你c是不是小于d,如果是则c不变,如果不是则c=b,简单来说就是取cd中较小的一个,那么就是3接着a<b?a:3,同理,如果a小于b,那么等于a,否则等于3 大家看看下边程序会输出什么东东
PS: 注意括号的作用
#include <stdio.h>
void main()
{
int a, b;
printf( "%d...%d...%d\n ", (a=1), (b=(a=2)), (b=(a=2)+(a=3)) );
} 返回值是函数的概念,这样一个表达式是没有返回值的,表达式的值被称作value of expression,这个表达式最后的结果是a的值,也就是一个右值。

题外话,对于计算机来说,它的目的其实并不是把10赋予a,把10赋予a只是人类的逻辑概念,计算机的目的,只是计算这个表达式而已,把10赋予a只是这个计算过程的副作用。 应该是有返回值的,因为这个应该就是运算符重载吧,我是说理解上来说! ......

阅读全文(1517) | 评论:0

无符号整型(2012-02-01 00:15:00)

摘要:注意, %d其实是等价于%i, 这里的i其实是指int。所以,%u的存在就有意义了。在这里也强调了在C中输入输出的类型选择十分重要,这也是C相对于C++的特点。

其实从本质上来讲,%d和%u是决定编译器如何解析内存。 由于unsigned int和int的存储方式不同——前者第一高位也用来存储数值,而后者第一高位用来存储符号,故解析的方法不同,结果也自然就不同了。那么,很好奇在C++中是由什么机制来解决的呢? ......

阅读全文(1320) | 评论:0

C语言中强制类型转换总结(2012-02-01 00:12:00)

摘要:
  1.自动类型转换 ● 字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128~127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围是0~255(有些机器把char型当做unsighed char型对待, 取值范围总是0~255)。
● 如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示。
double ←── float 高

long

unsigned

int ←── char,short 低
● 图中横向箭头表示必须的转换,如两个float型数参加运算,虽然它们类型相同,但仍要先转成double型再进行运算,结果亦为double型。 纵向箭头表示当运算符两边的运算数为不同类型时的转换,如一个long 型数据与一个int型数据一起运算,需要先将int型数据转换为long型, 然后两者再进行运算,结果为long型。所有这些转换都是由系统自动进行的, 使用时你只需从中了解结果的类型即可。这些转换可以说是自动的,但然,C语言也提供了以显式的形式强制转换类型的机制。
● 当较低类型的数据转换为较高类型时,一般只是形式上有所改变, 而不影响数据的实质内容, 而较高类型的数据转换为较低类型时则可能有些数据丢失。 2.赋值中的类型转换 当赋值运算符两边的运算对象类型不同时,将要发生类型转换, 转换的规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。具体的转换如下:
(1) 浮点型与整型 
● 将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。

阅读全文(1164) | 评论:0

cyuyan  一个不错的C语言社区(2012-02-01 00:09:00)

摘要:国外好的程序社区有不少,国内专注于C语言的不多,
http://www.cyuyan.com.cn/
cyuyan是个不错的地方,在上面浏览了一会,确实学到了点东西。 这里有一个帖子是几种排序方法的代码展示:  http://bbs.cyuyan.com.cn/thread-3402-1-1.html ......

阅读全文(1932) | 评论:0

SICP及裘宗燕教授主页(2012-01-31 23:59:00)

摘要:<<SICP>>是MIT的经典教材,以scheme为工具介绍编程思想。
北大的裘宗燕教授翻译了这本书。

我之前在学校借过这本书,译名为<<程序设计技术和方法>>。
前些日子在当当买了另外一个版本,也是裘宗燕翻译的,不过名字翻译为<<计算机程序的构造和解释>>。

这个是裘教授的主页:http://www.math.pku.edu.cn/teachers/qiuzy/
上面有一些不错的资源。 ......

阅读全文(4807) | 评论:0