C++中的static用法

简介

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。

面向过程设计中的static

1、静态全局变量

在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:

//Example 1

#include <iostream.h>

void fn();

static int n; //定义静态全局变量

void main()

{ n=20;

cout<<n<<endl;

fn();

}

void fn()

{

n++;

cout<<n<<endl;

}

静态全局变量有以下特点:

该变量在全局数据区分配内存;

未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化);

静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;

静态变量都在全局数据区分配内存,包括后面将要提到的静态局部变量。对于一个完整的程序,在内存中的分布情况如下图:

代码区 //low address

全局数据区

堆区

栈区 //high address

一般程序把新产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静 态局部变量)也存放在全局数据区。全局数据区的数据并不会因为函数的退出而释放空间。细心的读者可能会发现,Example 1中的代码中将

static int n; //定义静态全局变量

改为

int n; //定义全局变量

程序照样正常运行。

的确,定义全局变量就可以实现变量在文件中的共享,但定义静态全局变量还有以下好处:

静态全局变量不能被其它文件所用;

其它文件中可以定义相同名字的变量,不会发生冲突;

您可以将上述示例代码改为如下:

//Example 2//File1

#include <iostream.h>

void fn();

static int n; //定义静态全局变量

void main()

{ n=20;

cout<<n<<endl;

fn();

}

//File2

#include <iostream.h>

extern int n;

void fn()

{ n++;

cout<<n<<endl;

}

编译并运行Example 2,您就会发现上述代码可以分别通过编译,但运行时出现错误。 试着将

static int n; //定义静态全局变量

改为

int n; //定义全局变量

再次编译运行程序,细心体会全局变量和静态全局变量的区别。

注意:全局变量和全局静态变量的区别

1)全局变量是不显式用static修饰的全局变量,但全局变量默认是静态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。

2)全局静态变量是显式用static修饰的全局变量,作用域是所在的文件,其他的文件即使用extern声明也不能使用。

2、静态局部变量

在局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。

我们先举一个静态局部变量的例子,如下:

//Example 3

#include <iostream.h>

void fn();

void main()

{ fn();

fn();

fn();

}

void fn()

{ static int n=10;

cout<<n<<endl;

n++;

}

通常,在函数体内定义了一个变量,每当程序运行到该语句时都会给该局部变量分配栈内存。但随着程序退出函数体,系统就会收回栈内存,局部变量也相应失效。

但有时候我们需要在两次调用之间对变量的值进行保存。通常的想法是定义一个全局变量来实现。但这样一来,变量已经不再属于函数本身了,不再仅受函数的控制,给程序的维护带来不便。

静态局部变量正好可以解决这个问题。静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。

静态局部变量有以下特点:

该变量在全局数据区分配内存;

静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;

静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;

它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;

3、静态函数

在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其它文件使用。

静态函数的例子:

//Example 4

#include <iostream.h>

static void fn();//声明静态函数

void main()

{

fn();

}

void fn()//定义静态函数

{ int n=10;

cout<<n<<endl;

}

定义静态函数的好处:

静态函数不能被其它文件所用;

其它文件中可以定义相同名字的函数,不会发生冲突;

面向对象的static关键字

(类中的static关键字)

1、静态数据成员

在类内数据成员的声明前加上关键字static,该数据成员就是类内的静态数据成员。先举一个静态数据成员的例子。

//Example 5

#include <iostream.h>

class Myclass

{

public:

Myclass(int a,int b,int c);

void GetSum();

private:

int a,b,c;

static int Sum;//声明静态数据成员

};

int Myclass::Sum=0;//定义并初始化静态数据成员

Myclass::Myclass(int a,int b,int c)

{ this->a=a;

this->b=b;

this->c=c;

Sum+=a+b+c;}

void Myclass::GetSum()

{ cout<<“Sum=”<<Sum<<endl;

}

void main()

{ Myclass M(1,2,3);

M.GetSum();

Myclass N(4,5,6);

N.GetSum();

M.GetSum();}

可以看出,静态数据成员有以下特点:

对于非静态数据成员,每个类对象都有自己的拷贝。而静态数据成员被当作是类的成员。无论这个类的对象被定义了多少个,静态数据成员在程序中也只有一份拷 贝,由该类型的所有对象共享访问。也就是说,静态数据成员是该类的所有对象所共有的。对该类的多个对象来说,静态数据成员只分配一次内存,供所有对象共 用。所以,静态数据成员的值对每个对象都是一样的,它的值可以更新;

静态数据成员存储在全局数据区。静态数据成员定义时要分配空间,所以不能在类声明中定义。在Example 5中,语句int Myclass::Sum=0;是定义静态数据成员;

静态数据成员和普通数据成员一样遵从public,protected,private访问规则;

因为静态数据成员在全局数据区分配内存,属于本类的所有对象共享,所以,它不属于特定的类对象,在没有产生类对象时其作用域就可见,即在没有产生类的实例时,我们就可以操作它;

静态数据成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式为:

<数据类型><类名>::<静态数据成员名>=<值>

类的静态数据成员有两种访问形式:

<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>

如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员 ;

静态数据成员主要用在各个对象都有相同的某项属性的时候。比如对于一个存款类,每个实例的利息都是相同的。所以,应该把利息设为存款类的静态数据成员。这 有两个好处,第一,不管定义多少个存款类对象,利息数据成员都共享分配在全局数据区的内存,所以节省存储空间。第二,一旦利息需要改变时,只要改变一次, 则所有存款类对象的利息全改变过来了;

同全局变量相比,使用静态数据成员有两个优势:

静态数据成员没有进入程序的全局名字空间,因此不存在与程序中其它全局名字冲突的可能性;

可以实现信息隐藏。静态数据成员可以是private成员,而全局变量不能;

2、静态成员函数

与静态数据成员一样,我们也可以创建一个静态成员函数,它为类的全部服务而不是为某一个类的具体对象服务。静态成员函数与静态数据成员一样,都是类的内部 实现,属于类定义的一部分。 普通的成员函数一般都隐含了一个this指针,this指针指向类的对象本身,因为普通成员函数总是具体的属于某个类的具体对象的。通常情况下,this 是缺省的。如函数fn()实际上是this->fn()。但是与普通函数相比,静态成员函数由于不是与任何的对象相联系,因此它不具有this指 针。从这个意义上讲,它无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,它只能调用其余的静态成员函数。 下面举个静态成员函数的例子。

//Example 6

#include <iostream.h>

class Myclass

{public:

Myclass(int a,int b,int c);

static void GetSum();/声明静态成员函数

private:

int a,b,c;

static int Sum;//声明静态数据成员

};

int Myclass::Sum=0;//定义并初始化静态数据成员

Myclass::Myclass(int a,int b,int c)

{ this->a=a;

this->b=b;

this->c=c;

Sum+=a+b+c; //非静态成员函数可以访问静态数据成员

}

void Myclass::GetSum() //静态成员函数的实现

{// cout<<a<<endl; //错误代码,a是非静态数据成员

cout<<“Sum=”<<Sum<<endl;

}

void main()

{ Myclass M(1,2,3);

M.GetSum();

Myclass N(4,5,6);

N.GetSum();

Myclass::GetSum();

}

关于静态成员函数,可以总结为以下几点:

出现在类体外的函数定义不能指定关键字static;

静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数;

非静态成员函数可以任意地访问静态成员函数和静态数据成员;

静态成员函数不能访问非静态成员函数和非静态数据成员;

由于没有this指针的额外开销,因此静态成员函数与类的全局函数相比速度上会有少许的增长;

调用静态成员函数,可以用成员访问操作符(.)和(->)为一个类的对象或指向类对象的指针调用静态成员函数,也可以直接使用如下格式:

<类名>::<静态成员函数名>(<参数表>)

调用类的静态成员函数。

作用

static静态变量声明符。 在声明它的程序块,子程序块或函数内部有效,值保持,在整个程序期间分配存储器空间,编译器默认值0。

是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。

为什么要引入static

函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅受此函数控制)。

什么时候用static

需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装性,即要求此成员隐藏在类的内部,对外不可见。

static的内部机制

静态数据成员要在程序一开始运行时就必须存在。因为函数在程序运行中被调用,所以静态数据成员不能在任何函数内分配空间和初始化。

这样,它的空间分配有三个可能的地方,一是作为类的外部接口的头文件,那里有类声明;二是类定义的内部实现,那里有类的成员函数定义;三是应用程序的main()函数前的全局数据声明和定义处。

静态数据成员要实际地分配空间,故不能在类的声明中定义(只能声明数据成员)。类声明只声明一个类的“尺寸和规格”,并不进行实际的内存分配,所以在类声明中写成定义是错误的。它也不能在头文件中类声明的外部定义,因为那会造成在多个使用该类的源文件中,对其重复定义。

static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间,静态

数据成员按定义出现的先后顺序依次初始化,注意静态成员嵌套时,要保证所嵌套的成员已经初始化了。消除时的顺序是初始化的反顺序。

static的优势

可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,保证所有对象存取更新后的相同的值,这样可以提高时间效率。

应用格式

引用静态数据成员时,采用如下格式:

<类名>::<静态成员名>

如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员。

注意事项

(1)类的静态成员函数是属于整个类而非类的对象,所以它没有this指针,这就导致了它仅能访问类的静态数据和静态成员函数。

(2)不能将静态成员函数定义为虚函数。

(3)由于静态成员声明于类中,操作于其外,所以对其取地址操作,就多少有些特殊,变量地址是指向其数据类型的指针 ,函数地址类型是一个“nonmember函数指针”。

(4)由于静态成员函数没有this指针,所以就差不多等同于nonmember函数,结果就产生了一个意想不到的好处:成为一个callback函数,使得我们得以将C++和C-based X Window系统结合,同时也成功的应用于线程函数身上。

(5)static并没有增加程序的时空开销,相反她还缩短了子类对父类静态成员的访问时间,节省了子类的内存空间。

(6)静态数据成员在<定义或说明>时前面加关键字static。

(7)静态数据成员是静态存储的,所以必须对它进行初始化。

(8)静态成员初始化与一般数据成员初始化不同:

初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆;

初始化时不加该成员的访问权限控制符private,public等;

初始化时使用作用域运算符来标明它所属类;

所以我们得出静态数据成员初始化的格式:

<数据类型><类名>::<静态数据成员名>=<值>

(9)为了防止父类的影响,可以在子类定义一个与父类相同的静态变量,以屏蔽父类的影响。这里有一点需要注意:我们说静态成员为父类和子类共享,但我们有重复定义了静态成员,这会不会引起错误呢?不会,我们的编译器采用了一种绝妙的手法:name-mangling 用以生成唯一的标志。在各通信公司的笔试面试中经常出现的考题就是static的作用及功能。

Cannot send session cache limiter – headers already sent 错误解决办法

在windows下编程,当使用session_start()方法的时候,有时会报
session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /var/www/inpublisher/php1.php:1)这样的错误,说是已经有输出,用编辑器打,前面明明什么都没有,原来在使用AJAX的 时候,也出现过这种情况,后来,把这个PHP文件放到linux中打开,会发现,在文件的最前面,会出现“锘 ”这样的一个字符(引号内),把它去掉以后,再运行,OK,运行正常。后来在网上搜索一些文件,给的解释是:UTF8文件的BOM(Byte Order Mark)标志,在保存的时候会自动存入!
不管它是干嘛的,现在的目的就是把它去掉,我总结的方法有下面三种:
1、       在Linux下打开,去掉后再保存
2、       用写字板打开,把光标放到最前后回车,然后再敲删除,重新回到第一行,这样最前面的那个字符就会去掉
3、       使用UltraEdit编辑器(很好用的一个编辑器,网上多的是,自己下去),打开高级—-配置—-Unicode/utf-8 检测,把自动检测UTF-8文件,自动检测没有BOM的Unicode文件等前面的勾全去掉,然后你再打开那个文件,就会发觉“锘 ”这个字符出现了,删除就OK了
4、设置您的编辑器:在编辑utf-8文件时不添加BOM,以Edit plus为例:您需要将工具->参数->文件->UTF_8签名一项中,”总是添加签名”选项改为”总是移除签名”.这样重新编辑保存相应文件后就能解决这个问题.
5、我使用的是notepad++,如下图所示,将文件“转为UTF-8无BOM编码格式”就可以了,转换后可以看到文件已经以UTF-8无BOM编码了。

用notepad++清除bom

 

网站被降权了?

今天去百度site:renrenstudy.com,结果发现renrenstudy.com已经不在首位了。

按照网上的说法,应该是站点被降权了。

但仔细想想,最近也没进行什么”非法”的操作,还是先耐心等等吧。

9月26日记录:

中午去百度site了一下,发现首页已经回到了首位。

目前怀疑两个原因:
第一,前两天与几个博客互换了友情链接。据说做全站链接一般都会遭到降权。
第二,原来在renrenstudy.com下建了个bbs的子目录,放了个DiscuzX2的论坛,虽然没推广,但也引来了很多的垃圾链接。

9月26日记录:

还有一个不容易想到的降权原因:共享IP的其他虚拟主机。

10月3日记录:

今天想要修改网站标题,突然想到上次的降权很有可能只是因为将首页的标题进行了修改,造成了首页的排名下降。

Discuz X2如何添加nofollow标签 – 插件推荐:外链杀手-防垃圾外链

我们都知道,反向链接即外链是搜索引擎给网站排名的一个重要因素。为了添加反向链接,SEO作弊者会在论坛和博客等大量发布带无关链接的内容。这些垃圾链接的存在给搜索引擎对网页质量的评估造成一定程度的麻烦,可以说nofollow是一个非常好的“垃圾链接防火墙”。正是百度、谷歌、Yahoo、MSN 为了应对垃圾链接(Spam)引入的一个属性,此属性目前应该被广泛采用。

external nofollow是比nofollow更专业的写法,即明确指出链接为外部链接,爬虫可以略过。

1.本插件支持 “域名白名单”,可以不对 白名单 里的域名进行处理。
2.对站外链进行搜索引擎封杀 ,保证本站链接投票权重,即明确指出链接为外部链接,爬虫可以略过。
3.对蜘蛛进行判断,即使别人查看你网页源代码也看不出你对外链做了手脚。
4.可自行选择使用 external nofollow 还是 nofollow 默认 external nofollow 。
5.可以选择使用链接杀手的版块。

插件下载地址:http://www.discuz.net/forum.php?mod=viewthread&tid=2152122

中国的普通互联网用户相对低端,对他们来说,互联网越简单越好

目前拥有上亿用户的4399定位为国内最大中文游戏发行平台,其中网页游戏注册用户1200多万,每天新增用户近20万,每日流量1600万,平均同时在线80万,月收入达到千万,盛大、巨人等大公司都开始与其合作。

一个有趣的问题是,无论是hao123还是4399,其页面都极不美观,这让互联网精英们无法理解,为什么这样的网站能够获得这么大的流量,其成功的原因是什么?

“中国的普通互联网用户相对低端,对他们来说,互联网越简单越好。我曾做过实验,我让五六岁的小孩同时玩4399和其他小游戏网站的游戏,一个星期之后,他会更喜欢使用4399。”蔡文胜说。这多少和当年李彦宏对hao123的评价类似:“hao123简单到让人无法超越。”

nofollow外链对排名有没有作用 | nofollow友情链接

首先我们看一下讯鹰SEO的一篇《你的网站外链是否受到nofollow标签的影响》中的分析。

自seo发展至今,这个行业可谓是鱼目混杂,五花八门。在遵循seo宗旨的前提下,各个站长可以说是百家争鸣,各执一词。不同于战国时期诸子百家学派的是,当时诸子学说是要根据社会发展和实践验证的,而seo中遵循着万变不离其中的一点,那就是搜索引擎算法和搜索引擎管理员推出的相应规则。所以,seo有着行乱而神不乱的内在因素。

seo发展中,Google率先推出PR值,代表一个网站的权重。而提高网站权重最有效的方法就是获得网站外链。随之而来的就是站长们为提高自身网站权重,纷纷增加自己网站外链,各个网站充斥着相关或不相关的链接。

垃圾链接盛行,或多或少的影响着搜索引擎对网站的判断。对此Google再次新创了一个标签——nofollow。它是一个HTML标签的属性值,即告诉搜索引擎”不要追踪此网页上的链接”或”不要追踪此特定链接。如A站有一个链接指向讯鹰博客,但A站给这个链接加上了nofollow标签。此时,搜索引擎并不将A站网页计算入讯鹰博客的反向链接内,搜索引擎看到这个标签就可能减少或完全取消链接的投票权重。当我们在友情链接的时候,若碰上这种情况将大大减少友情链接的作用。所以,做友情链接的时候,我们不得不注意一下,对方是否为你的链接加上了nofollow标签。

在我们警惕nofollow标签的同时,也应该知晓其不可忽视的作用。nofollow标签的问世,就是为了防止垃圾链接的盛行,故被称为“垃圾链接防火墙”。仅此,nofollow属性标签就应该得到广泛应用,遏制互联网上垃圾信息的蔓延。

说下我的见解。

我们可以主要到上文的这么一句话:在我们警惕nofollow标签的同时,也应该知晓其不可忽视的作用。nofollow标签的问世,就是为了防止垃圾链接的盛行,故被称为“垃圾链接防火墙”。

nofollow标签被提出的初衷,就是为了防止垃圾链接。

也就是,这个标签是搜索引擎帮助解决站长来指明哪些是垃圾链接的,让站长合理安排权重的传递走向。

所以,你还会自欺欺人的认为nofollow的友情链接会有作用吗?不要骗自己了。

既然要做友情链接,为什么要加nofollow标签,不想让自己站点的权重传递给友情链接?

那还有什么交换友链的意义。“友情”两字也变得更加讽刺了。

百度排名法则

百度排名法则:

这个问题,相信很多seoer会感情绪,那么本人今天在就这讲一下本人对百度排名法则的看法,首先是上面的问题,PR值对于百度来说其实没有直接联系,PR值得多少和排名没有关联,并且谷歌也说过,排名和PR值没有关联,那么PR值得意义在哪呢?PR值=网页质量,网页质量是什么?网页质量=用户体验。用户体验又是什么?用户体验=PV值,跳出率,关键词访问率,相关网页锚文本访问次数……而百度一直崇尚的就是用户体验第一。这也就是为什么前一阵子百度点击器运行的原理。这也和夫唯的五条金律非常贴近。

总结下,百度排名法则:

1、外链占百度排名影响因素,要占到30%左右(外链数量,外链质量等)

2、用户体验占百度排名影响因素,要占到25%左右(网页质量,网站正常访问稳定性,PV值,跳出率,死链接数量等)

3、域名,空间因素占百度排名影响因素,要占到10%左右(网站域名时间长短,空间打开速度,空间稳定性等)

4、网站内部结构优化占百度排名影响因素,要占到20%左右(图片alt属性,网站框架-div+css结构,路径静态化,首选域等等)

5、其他因素占百度排名影响因素,要占到5%左右(网站合法性,网站域名备案等不确定因素。)

总之,上面的五点可能没有那么精确话,但是估算的话,上面的五种法则,至少要站百度排名算法的50%以上。因此,从上面的法则入手,不采用作弊的手法,一定会尽可能让你的网站在百度有个良好的表现。

引自郑州SEO

快速增加反链的十种方法

一、只要能留名的地方,就能留下你的地址。无论在网上浏览到什么地方,做到“人过留名”,是走向反链建设的第一步。不过,要注意,很多网站虽然能留网址,但是却是网址转向,也等于是无效的。所以大家在用这个方法前,一定要先看看对方的网站,可以不可以留超链,否则就是瞎忙活了。

二、购买各类论坛高发帖量ID(可放置链接签名的论坛)。这样我们在购买该ID并在其个人签名中添加我们的网址,那么该ID发表过的所有帖子都存在了反链。可以选择一些名气不是特别大,但是在引擎中表现特别出色的论坛来购买,最好不要选择站长性质的论坛,因为站长性质的论坛人家知道你买了签名是做什么的,价格就会涨上去。一般去一些地区性论坛或者娱乐性论坛购买ID,你会用相对较低的价格,买到发帖量足够多的ID的。那么什么算是在引擎中表现出色的论坛呢?举个例子,你在该论坛发帖,1个小时内该贴被引擎收录的则为“特别出色”的论坛,即可选择在该论坛购买ID。购买好ID后,记得将ID内的签名修改成描文字链接,至于文字内容,完全可以选择你站首页的关键词。

三、原创优秀文章投稿。很多专业性站点都带有用户投稿系统,一篇扣人心弦、发人深省的文章往往会得到编辑的青睐,我们可在文末添加一个小小的网址,切莫不可在文内添加网址哦,一来影响读者阅读,二来影响自己的说服力,让人一眼就觉得这只是篇可能是抄来的软文。只要你的文章有力度,我相信善良的编辑们也是乐于保留你的版权信息的,由此,该文在被转载地同时,你将以最小的付出换回最多的反链。个人认为,此种方法获得的反链是相对高质量的,比起论坛的签名或是论坛发帖,要有效地多。

四、交换友情链接。尽量找与你的站点关键词、内容相近的站点作友情链接,这样作友情链接的效果非常好。为了具体说明交换友情连接的目的和方法,下面引用一篇《交换友情链接终极技巧大全》的文章。

一、交换友情链接的目的

1、提升PR。这是交换友情链接最根本的目的。如果知道什么是PR值的,请看最下面的名词解释。

2、提高关键字排名。这也是目的之一,其重要性不必赘述,有关关键字优化的技巧,参看笔者以前的文章《江礼坤:在搜索中如何提高关键字排名》。

3、提高网站权重。这点很重要,只有你的权重高了,搜索引擎才会重视你。

4、提高知名度。这条还是比较有针对性的,对于一些特定的网站和特定的情况,才会达到此效果。比如一个不知名的新站,如果能与新浪、SOHU、YAHOO、网易、腾讯、3G网址大全等大的网站全都做上链接的话,那肯定对其知名度及品牌形象是一个极大的提升。

5、提高流量。这条几乎可以忽略不计,但是之所以写上,是因为很多新人有个误区,以为换友情链接是为了增加流量,所以在这里严重纠正一下,友情链接对于流量的提升帮助非常小,如果友情链接带来的那几个IP能影响到您网站的流量话,那这个网站有没有存在下去的必要就很值得商榷了。其实笔者刚学习建网站时,也是这么认为的。

二、什么是优质的链接

1、Alexa排名。Alexa排名代表的是流量,当然,有人说了,不少网站的排名是通过作弊得来的,看这个没意义。有排名的网站确实不一定有流量,但是没排名的网站一定没流量。至于与排名多高的网站交换适宜,没有明确的标准,笔者认为别比你自己网站的排名低太多就成。

2、PR值。这个代表的是网站的权重,只有与权重高的网站交换链接,才会提升自己的权重。通常来说,只要对方的PR值比自身高就可以换。不过笔者认为至少应该达到4才算是一个优质的链接。

3、知名度。对方网站最好具有一定的知名度,或在行业内具有一定的影响力。

4、关联性。对方网站的主题内容要与我方网站有一定的关联性。

6、网页快照。对方的网页快照时间,最好在天天之内。

7、收录数。第一,搜索引擎的收录数与其网站的实际内容数,不应该相差太大。第二,对方网站在百度与GOOGLE的收录数最好不要相差太大,这个可以参考其同类网站的在不同搜索引擎的收录比例。

8、更新速度。对方网站的内容最好是天天有更新,只有天天更新的网站,搜索引擎才会重视,用户才会喜欢,链接了也才有价值。

三、坚决不换的链接

1、假PR。通常假PR是指利用PR劫持技术去欺骗PR值的一种手段。不过识别也是很容易的,有很多在线的识别工具。

2、导出链接太多。即使对方的PR值是10,但是如果有几百个链接的话,那实际上分到你头上也没多少了。

3、内页链接。坚决不做内页链接,内页链接往往是没有任何意义的。因为专门的友情链接页,不会每天更新,而且通常友情链接页也没有很高的PR值。

4、JS链接。这个坚决不能换,搜索引擎是根本看不到JS里面有什么的。搜索引擎看不到,也就意味着这个链接无效。

5、没有PR值的页面坚决不换。之所以把这条写出来,是因为很多新人呀,以为对方网站只要有PR,那和他的任何页面换了就有效果,其实不是这样的,一定要与对方那个有PR值的页面直接交换才行。各位看官莫笑,确实很多新人有这个误区。

四、获取链接的渠道

1、个人关系。新网站没有PR值、没有排名、没有流量,所以肯定没人愿意和你换了。所以这个时候只能靠个人关系了,有时候为了生存,只能先把面子放兜里了。

2、QQ群。多加一些相关的网站群,多在群里互动。说不定就能聊出来几个白送的链接。

3、专门的链接网站。现在专门交换友情链接的网站、论坛有很多。像人人学习网,在上方导航栏中就有专门的交换友情链接专区,也可以到像go9go这样专门换友情链接的站找。

4、资源互换。如果实在搞不到链接,只有想办法资源互换了。比如说你的文笔很好,那帮别人写一篇软文,换一篇链接。

5、购买链接。如果上述方法都不行,只有花钱买啦。现在卖链接的很多,价钱也比较透明。一般一个优质的PR5链接,在百元以上,差一点的则是几十元的样子。买链接时注意以下几点:

A、不要一次买太多,容易被K,一点一点的买。

B、不要图便宜买一些质量不好的链接。

C、最好在PR值更新前一个月再买,这样就可以省两个月的钱了。

D、当PR值被带起来以后,赶紧去换一些优质的链接回来。毕竟长期靠花钱买链接,成本也太高了点。

四、相关名字解释

1、什么是外链:外链也叫外部链接,或是反向链接。是指非本地站点以外的链接。凡是外部网站链接自己站点的链接,都称之为外链。

2、什么是PR值:PR值全称为PageRank,网页的级别技术。是Google用于评测一个网页“重要性”的一种方法,级别从1到10级,10级为满分。PR值越高说明该网页越受欢迎(越重要),同时也将在搜索引擎中获得更好的排名。

3、什么是网站权重:搜索引擎给网站(包括网页)赋予一定的权威值,对网站(含网页)权威的评估评价,一个网站权重越高,在搜索引擎所占的份量越大,在搜索引擎排名就越好,提高网站权重,不但利于网站(包括网页)在搜索引擎的排名更靠前,还能提高整站的流量,提高网站信任度所以提高网站的权重是相当重要。

简单的说,权重即网站在SEO中的重要性,权威性。权重不等于排名,但权重对排名有着非常的大影响,整站权重的提高有利于内页的排名。

4、什么是网页快照:通俗的说,网页快照就是搜索引擎在收录网页时,都会做一个备份,大多是文本的,保存了这个网页的主要文字内容,这样当这个网页被删除或连接失效时,用户可以使用网页快照来查看这个网页的主要内容,由于这个快照以文本内容为主,所以会加快访问速度。

5、什么是PR值劫持:也就是用欺骗手段获得工具条上比较高的PR值显示。方法是利用跳转。一般搜索引擎在处理301和302转向的时候,都是把目标URL当作实际应该收录的URL。当然也有特例,不过在大部分情况下是这样处理的。所以如果你从域名A做301或302跳转到域名B,而域名B的PR值比较高,域名A在PR更新后,也会显示域名B的PR值。最简单的就是先做301或302跳转到高PR的域名B,等PR更新过后,立刻取消转向,同时也获得了和B站相同的PR值。这个做假的PR显示值至少维持到下一次PR更新,一般有两三个月或更长的时间(最近GG更新有点慢)。

更隐讳一点的办法是,通过程序检测到Google蜘蛛,返回301或302转向,对普通访问者和其他蜘蛛都返回正常内容。这样我们看到的是普通网站,只有Google会看到转向。

小贴士:本文系推一把创始人、蓝色烽火成员江礼坤原创。转载时请保留此版权信息。

五、花钱购买
花钱购买是最直接而有效的方法,也是最容易控制的方法。但是大家注意,不要去购买黑链、隐藏链等非正常链接。同时也要注意链接的质量,不要只盯着PR看,PR高不一定代表其链接就一定优质。

六、在论坛社区留外链
对于既没有钱,又没有资源的新站来说,通过论坛留外链,是目前最主流的方法。
A、签名里的外链与贴子里的外链,效果是一样的。所以大家不要放着签名不用,非要违反论坛规定,在贴子里留外链。像人人学习论坛,签名是允许留链接的,而且有专门的广告外链区。而且这个区的权重非常高。但是很多会员偏不用这些合法的途径,非要在贴子里留一大堆链接。不管在那个论坛,这样做的后果只有两个:乐观一点的结果是被封号。严重的结果就是网址被对方永久屏蔽。
B、论坛内的外链,属于内容页的链接。这种链接的权重是很低很低的,所以想靠这种链接来提升网站的权重或是关键字的排名,那就需要量非常大才行。注意,这里说的量大,是指发外链的目标论坛要多,而不是指在同一个论坛里大量的发链接。这个大家一定要搞清楚。当然,同一个论坛也不是说发过一个外链贴就OK了,也需要经常发。比如说同一个论坛,一周发个三五个链接就OK,个人感觉一天一条足矣。
C、论坛链接也要细水长流的做,不要忽多忽少。比如今天发了几百上千条外链。然后就不发了,这样搞,就像葛优大爷的脑袋一样,优化的太明显了。搜索引擎闭着眼都知道是咂回事。

七、在问答类网站留链接
问答类的链接,和百科类的效果类似。其实在百科留外链,主要也是为了提升知名度和带流量。但是如果想达到提升名度和提升流量的目的,就需要天天上去回答问题才行。说白了在里面做品牌。但是这个耗费的时间和精力,就太多了。值得不值得这么去投入,就需要大家自己去衡量了。

八、在信息分类网站留链接
现在的信息分类网站很多,全国性的有,比如58、赶集,地方性的也有。所以利用这个方法留外链不错。而且分类信息站不同于论坛,只要不发纯广告,是可以留外链的。比如说最简单的,发布招聘信息,然后留个公司网址。这样的信息,管理员是绝对不会删除的。

九、通过资源留外链
这里说的资源,主要是指网站模板、网站程序、在线工具一类的资源。如果大家有能力开发或是制作这类资源,那恭喜你,你找到了一条留外链的捷径。比如说大家在制作这类资源时,将作者的版权地址加在下面,并且说明,如果谁想免费使用,需要保留作者地址。然后把这些资源免费传播出去。这样就可以坐等收链接了。不过也要注意一下,这个方法也可能会带来一个负面作用,就是突然一下出现很多外链,而被搜索引擎惩罚。

十、所谓的站内链接
排名的最基本单位是网页,没有一般SEO教程中说的外部和内部之分。大家去搜索一个关键词,出来的结果是一个个的网页而不是一个个的网站。很多SEO教程总把网站当作个体来做事情,这是完全错误的。很多人还是不理解这句话,就是“排名的最基本单位是网页”。当你明白“排名的最基本单位是网页”,自然就知道怎么去做外部链接了。

最后说明一点:很多人说反链建设其实可以通过软件群发或者其他类似的手段实现,那么我告诉你你错了,任何一款群发软件所制造的反链都会被列入引擎的黑名单中,即使短时间内不会惩罚到你,但终究有一天会轮到你头上的。所以新手切莫使用群发软件去做反链,那只会伤害到你的网站。

SEO常见问题解答

转载自Prestan’s blog http://www.dikgo.com/seo/1057.html

问:

1.百度权重及GOOGLE PR对网站哪个重要些?

2.SOSO 现在对网站的重要性?

3.购买外链的话,要注意的重点是?

4.最快的SEO操做可行方式有没?

答:

1、针对百度的优化,百度给予这个网站的权重很重要。针对google的优化,PR值不重要,PR和排名以及SEO流量没什么直接的关系。

2、SOSO的SEO流量也需要重视。

3、不管买还是通过其他方式去做外链,最重要的是相关性。PR和是不是nofollow也没那么重要。买链接的话,不要和那种垃圾链接呆在同一个网页上。

4、有很多快速获取流量的方法,但是基本只在很小的圈子流传。黑猫白帽都有,很多白帽的方法也能获得大量流量,这些方法都是数据分析和实践得来的。

问:网页代码对SEO有什么影响,div+css和table对seo的好处好坏处分别是什么?

答:不要一开始就钻到这种细节里。他们的区别很小,关键是在你的内容质量怎么样。先整体再局部,先把一些大方向影响SEO流量的因素发掘出来,再去细化各自的更多的细节。 这样才能知道轻重缓急,也能保证可控性。其实有很多其他大家都不关注的因素比这个因素重要多了。 如速度问题,服务器性能问题,http头信息等。

特别是http头信息,很多网站都在这方面出了很多乌龙的事情,但是公开的资料里都没人知道这个对SEO有什么影响。所以先整体再局部非常的重要,很多公开的资料里至少还有一半的影响SEO的因素都没提到。

:最近百度变化很大,就说排名跟快照,我的一个站快照明明是隔天的,但是一查排名发现不是,以前的快照跟实际快照相差差不多一个月吧,你分析一下这是怎么回事?现在好多的网站都出现这种情况了。

答:网页快照的本来功能是当一个网页不存在的时候,你还能用网页快照看到这个网页的信息。我不知道大家为什么要去看这个快照时间,这个快照时间只能说明搜索引擎在这个时间访问过你的网站。 快照信息不一致,是因为你查询的方式不一致吧。 这个和排名没什么关系。

问:怎么才能做好百度排名?

答:排名不等于SEO流量。

我们的目的始终是大量相关的SEO流量。 就算要说排名的话,也不是几十个关键词的排名, 是所有潜在用户可能搜索的所有关键词的排名。

就算有排名,如果没什么人点击也没有流量。有的网站的整站点击率有5%,有的只有0.5%不到。也就是说,这两个网站整体排名一样的话,流量差十倍。

而真实情况中也有很多这样的例子。只能说,很多方法不科学,所有会有这种问题。

问:百度和google在seo操作上是否有不同?

答:绝大部分是相同的。至少策略都是一样的。

不一样的地方是,很多作弊方法 百度非常有效,但是google没有效果。 google优化的一些方法,在百度容易被看作作弊的方法。

有些人做习惯了百度的SEO,用同样的方法去做google的SEO,很多都被惩罚了。

有些人做习惯了google的SEO,用同样的方法做百度的SEO,被惩罚了或效果不大。

当然也有些作弊方法在百度是没什么效果的,但是因为google非常的宽容,所以段时间能获得一些流量。但是时间长了,还是会被降权。

还有百度的排序规则越来越在抄袭google。

问:嘉宾你好,新站怎么做seo,介绍几个重要的方面。

答:新站第一要紧的是怎么去做一些用户需要的内容。 这个工作会一直持续在做SEO的整个过程。

问:站群怎么做seo呢?

答:站群先想好怎么做内容。

其实更重要的是要想一想为什么做站群。作弊的事情,哪怕技术上成功了,策略上也会失败的。

纯粹的做站群是一个没有创造什么价值的事情,除非它是你的一个过程而已。

问:想知道下网站用xxx.com/bbs还是bbs.xxx.com好,好在哪里?

答:大部分情况下 xxx.com/bbs 要好。

问:企业网站怎么做seo。

答:关注你的潜在客户,看他们喜欢找什么内容,然后在你的网站上满足他们的需求。

这个需要通过大量的数据挖掘收集用户的需求。

这也是做大型网站要做的,小企业站也一样。

用户的需求摆在那里,争取到了这些流量的网站就会很不错。

问:做gg优化要注意什么?做外链有没有数量上的要求?

答:注意外部链接的相关性,注意外部链接的增加速率。

外部链接不是用多少判断的,是看你增加的速率如何。

问:一个单页如何seo?

答:大量相关的外部链接。

相关性的重要性远远超过PR值和是否nofollow。

还有:一个网页以外的所有链接都是外部链接,排名的最基本单位是网页而不是网站。

问:现在百度的排名很乱 真搞不明白他是怎样排的 ,有一些内容页都排到第一位了,说到外链接啊等都没有主域名的网站强吧,那他的排名怎样排到第一位了呢?

答:一个网页的排名,不是在拼外部链接数量。

想一个简单的问题:

难道,外部链接多的网页就是用户需要找的网页吗?

所以这个问题也是不应该存在的。

问:最近谷歌的排名我发现主要还是搞PR在支掌着,我现在的PR站排名还算可以大部分的流量都是谷歌来的,百度方面很少。做谷歌的你认为是以什么为主,比如外链,是高PR的还是数量呢?

答:中文更容易,因为很多好的方法没有普及,正因为大部分人还在用N年前的方法,所以流量很容易做。

不过英文的更可控,因为google和bing这种搜索引擎不会自己犯一些低级错误。

问:请问嘉宾 ,百度再次被站群占领了, 百度的变化我应该如何应付!淡定就不用说了。

答:其实我一向反对作弊的。不过,如果一个搜索引擎自身不成熟的话,可以适当作弊。

要适应这个环境就是这样。

不过更要是要关注做SEO的目的,永远不要忘记当初为什么做SEO,看现在做的是不是在实现当初的目的。

问:前段时间很火的狼雨的网站,我分析了一下,他能在那么短的时间作上去是靠的是外链。有几百个首页优质的外链,这些外链都是跟SEO有关的,是靠优质外链才能做上去的,所以得出的结论是百度的排名核心是外链?

首页的外链越多越好,还如mbaobao的也是靠外链排上去的, 它购买了很多的外链,把他的排名拉得很高,就连淘宝这个词都在首页前面。你是这样认为的吗?谈谈你的看法吧?

答:一个网页以外所有的链接都是外部链接。

外部链接现在在百度还是很重要。在Google依然很重要,但重要性正在逐步降低。

做SEO的话,还是要关注整体,很多人在某个关键词是可能是排在第一了,但是流量不一定很多的。甚至因为太关注这些词语的排名,整体流量其实比那些在这个词语上没什么排名的网站还要低。很多时候都是这样。

很多依靠SEO成功的网站,可不是某某热门关键词排得很好就在SEO上很成功了的。

问:seo最重要是哪几点?

答:最重要的是怎么满足你的那些有可能给你网站带来收益的潜在用户的需求。

他们在找大量的资讯,而你就是考虑用什么样的内容去满足他们。

在现阶段,仅仅考虑这个问题并解决好,后面的很多SEO方面的技术只要不出大问题,都能让你在SEO上获得很大收益。

因为现在没多少人考虑这个问题,所以很多的流量是没有人去要的。

问:SEM是网络营销,跟他seo是否是可以分开的?seo是帮助网站在搜索引擎中一个有排名的策略,sem是推广以及推销,可以是这么的去理解吗?

答:SEM=搜索引擎营销 = SEO+PPC类的付费推广

SEO和PPC在一个网站要互相配合,因为他们都是从同一个平台获得相同的收益。所以很多资源都可以共享,如关键词库等等。

SEO和PPC的目的都是一样的,只是一个投入技术资源,一个投入钱。

问:网站有大量图片,是B2C商城。有没有好的办法优化图片(除了写ALT标签),让图片为网站增加权重,带来流量?

答:在《google网站质量指南》中有详细的SEO图片流量的优化方法,去那里搜索一下即可。

同样,那里有大量SEO知识, 很多知识是那些所谓专家都不知道的。

问:还是外链的问题,没有友情连接怎么最快的把一个竞争不大的词做上来

答:很多网站不依靠外部链接,网站的很多网页都能获得不错的排名。

主要是依靠权重。 权重不是PR,很多SEO文章把这个基本概念都搞错了。

权重是由一个网站的大量正面因素累加的、一个搜索引擎对网站的重视程度。

问:一个站要发展是不是只有做好SEO才有用?如果是那大概是怎样子的呢?

答:SEO只是一个网站在网络上推广的一个方式而已。

对很多SEO能力不好的网站来说,去买流量或做PPC还划得来一些。因为与其花大量的力气,SEO流量还是原地打转,不如去花钱买点流量。

问:网站内部优化和外部优化,哪个更重要一点?

答:这个问题也是不应该存在的。

排名的最基本单位是网页。 没有一般SEO教程中说的外部和内部之分。

大家去搜索一个关键词,出来的结果是一个个的网页而不是一个个的网站。 很多SEO教程总把网站当作个体来做事情。

问:我想问 关于链接的问题。

1:外部链接 是首叶好,还是全站好?为什么?

2:内部链接 怎么样做比较好?

答:一个网站的首页,是最不缺少外部链接的。

要明白这个意思,就要把网站的首页当作一个网页来看,网站的首页不能代表整个网站,它只是一个页面而已。

这个网页之外所有给他的链接都是外部链接。所以首页不缺链接。

很多人还是不理解这句话,就是“排名的最基本单位是网页”。当你明白“排名的最基本单位是网页”,自然就知道怎么去做外部链接了。

问:一个关键词,本来有排名,只是排名在第一页 5-6位置

推一些外链,就没有排名了,是什么原因

答:很多问题,我不看一个网站的数据,都不能真正的知道原因的。

都只是基于经验来猜。

科学的SEO就不是来猜,是用数据说话。

问:嘉宾您好,我目前有几个网站是之前一直挂着出售页的老域名,最近才开始做成网站的。

到现在大概都有一个月的时间,百度收录和快照都很良好,但是gg出现了K站的情况,应该不存在过度优化的状况,因为新站都没有做过外链之类的,每天更新的文章数量也是比较有规律的。

这是不是说gg对网站改版(从单页面的出售页改为内容增多的网站)看得很重呢?

这种情况还有可能被gg重新收录么?

答:应该是内容质量出了问题。

还有可能是一些基本的技术问题,我说了,其实影响SEO效果的因素非常多的。

举一个例子,有一个英文网站,在返回的http头信息里申明自己的语言编码是zh-cn,那在英文的搜索是不会有什么流量的。

这个因素没什么人注意,但是确实影响了SEO流量。 关于收录也是,你还有很多因素没有去看,比如是否返回码错误,是否搜索引擎知道你在伪原创等等。

问:真正把seo做到可控 需要坚持几年? 另外个人做外贸应该怎么入手?

答:不是时间的问题,是方法的问题。

有技术基础的人,如果同时会做数据挖掘,教给他一个系统的方法,可能半年就可以。

问:现在有好多SEO的培训个个都称自己为大师,还没有报名时说得很好,说包教包会,包能找到工作,保证毕业出来后能赚多少多少钱等等,但是进去了往往是失望,赚不到钱的就说不认真学,不舍得花钱投资去项目之类的。

为了我们自己的利益我们在去报名培训的时候应该注册哪些情况呢?

答:有一个简单的判断标准: 凡是声称保证赚钱的,基本可以不去。

确实很多人用SEO赚了钱,但是学会SEO压根不等于赚钱。 别说是不是能学到有用的SEO知识不说,就是很多SEO流量很大的网站,和赚钱也没扯上什么关系。

一个培训机构这种逻辑都没有的话,可以不去。

问:嘉宾您好。我是做医院网站优化的。

目前我的网站有7个月了,外链有5000多条,请问这个基数的外链,如果现在开始使用软件群发外链(论坛博客、分类信息群发等),会不会有危险?会不会因为外链增加过猛而被K站?

答:作弊都有危险。

很多出问题的网站,如果是因为作弊出问题的话,那很难怎么做好的。

SEO可以不作弊也能拿到很多流量的。

问:我的一个站半年了,收录外链什么的都很好,可IP就很少,请问网站流量和哪些因素有直接或者间接的关系呢?

答:和SEO流量最相关的3个因素是 收录,排名,点击

一般的网站都存在很多问题。

很多网站收录其实不好的,因为site出来的数据不是真正的收录。一个网站网页的数量比大部分人预计的多。

问:针对google panda对国内SEOER有些什么好的建议

答:panda算法是迟早会来的,google不可能坐等被伪内容垃圾站毁了。

做google的SEO可以这么说:最好的黑帽方法就是做白帽。

只要你和google的方向是一致的,你会经常得到很多实惠。 这次panda算法后,有些大型网站涨了一倍流量,绝对值在几十万UV,这就是做白帽SEO的好处,而黑帽如果好不容易搞几十万UV,每天都在担惊受怕。

问:我比较赞成科学的SEO手段,因为这中方法很务实,切合实际

在数据分析、观察、技术的使用都有哪些技巧呢?

我们大家都知道数据的观察和分析但是大家的方法都不是很合理,嘉宾可以介绍介绍吗?

答:首先,影响流量的三大因素要数据化:整体收录量数据化、整体排名数据化、整体点击率数据化。

一般人只把收录数据化了,而且还是不准确的数据,所以需要拿到靠谱的数据。

还有,其实整体排名和整体点击这两项都可以数据化的,这就需要自己具备数据挖掘的意识和方法。

 

VC++学习视频第20集 | Hook编程

有些朋友反映视频看不清楚,下面提供两个视频源文件下载地址,非常清晰:

DBANK网盘下载地址:孙鑫C++视频教程(全20讲).rar

VeryCD(电驴)资源地址:《孙鑫VC++视频教程 20集全》[RMVB]

注:有些朋友反映在线观看的视频看不清楚,而提供的DBANK下载地址和电驴下载地址下载速度又太慢。如果大家有相似情况,可以在本文下方评论中留下邮箱地址,注明“需要C++学习视频孙鑫20集教程,邮箱地址xxxx@xxx”。我会在看到评论后将视频给大家发送到邮箱。

VC++学习视频第19集 | 动态链接库程序的编写

有些朋友反映视频看不清楚,下面提供两个视频源文件下载地址,非常清晰:

DBANK网盘下载地址:孙鑫C++视频教程(全20讲).rar

VeryCD(电驴)资源地址:《孙鑫VC++视频教程 20集全》[RMVB]

注:有些朋友反映在线观看的视频看不清楚,而提供的DBANK下载地址和电驴下载地址下载速度又太慢。如果大家有相似情况,可以在本文下方评论中留下邮箱地址,注明“需要C++学习视频孙鑫20集教程,邮箱地址xxxx@xxx”。我会在看到评论后将视频给大家发送到邮箱。

VC++学习视频第18集 | ActiveX控件的应用与工作原理

有些朋友反映视频看不清楚,下面提供两个视频源文件下载地址,非常清晰:

DBANK网盘下载地址:孙鑫C++视频教程(全20讲).rar

VeryCD(电驴)资源地址:《孙鑫VC++视频教程 20集全》[RMVB]

注:有些朋友反映在线观看的视频看不清楚,而提供的DBANK下载地址和电驴下载地址下载速度又太慢。如果大家有相似情况,可以在本文下方评论中留下邮箱地址,注明“需要C++学习视频孙鑫20集教程,邮箱地址xxxx@xxx”。我会在看到评论后将视频给大家发送到邮箱。