您现在的位置是: 首页 > 数码生活 数码生活
chh硬件_chh硬件交易区
tamoadmin 2024-08-23 人已围观
简介1.对我来说i5 3570k与e3-1230v2哪个好2.锐龙7 1700x带vega64 600w电源够用吗3.200分!关于计算机保密——满意者追加100分!4.金士顿和闪迪u盘哪个好?哪个更耐用呢?5.如何学习电脑硬件,本人刚入门一窍不通 还望有大师指点6.i7 4790K双超4.5 缓存电压设置问题家用NAS,不需要很高的配置,其实可以用一台性能较低的旧电脑进行改造,其关键在于四点:稳定的
1.对我来说i5 3570k与e3-1230v2哪个好
2.锐龙7 1700x带vega64 600w电源够用吗
3.200分!关于计算机保密——满意者追加100分!
4.金士顿和闪迪u盘哪个好?哪个更耐用呢?
5.如何学习电脑硬件,本人刚入门一窍不通 还望有大师指点
6.i7 4790K双超4.5 缓存电压设置问题
家用NAS,不需要很高的配置,其实可以用一台性能较低的旧电脑进行改造,其关键在于四点:
稳定的运行。因为需要常年不关机,所以我们需要发热量不大的CPU,不需要显卡(甚至不装任何显卡驱动,使用默认的VGA模式就可以),家中如果有在性能上淘汰的电脑,尚能稳定运行的,就可以作为基础。系统方面,应该选择稳定性更好的windows server系统,而不是普通的windows系统。
流畅的网络。因为需要通过网络传输大量的数据,在当前宽带中国的大环境下,一个千兆级别的网卡是必备品。老电脑如果主板自带千兆网卡,也可以继续使用,否则就要购一个新的千兆网卡安装上了。
海量的存储。普通PC电脑的硬盘供电口较少,一般只有3个,接3个3T硬盘的话,一般可以满足家用需要了。这是从性价比进行考虑,目前3T硬盘的容价比最高,1T200元。如果9T不够用,就要考虑服务器电源了,当时价格不是一般的贵,性价比缺失。
易用的软件。硬件准备好了以后就需要实现NAS功能的软件了。从易用角度考虑,不推荐专业软件,配置和使用都不是一般人能掌握的。推荐使用现在铺天盖地的网盘作为载体。比如:百度网盘,360网盘,乐视网盘等等,都是有很大容量的,部分网盘甚至是没有空间限制的,而且都是多平台的。只要把资料分类上传到网盘上,就可以在移动端下载使用了,文件更是可以在线看。
PS1:家中使用的话,就把硬盘上的资料进行共享或者高级一些的映射网络驱动器(很容易能查到教程的,推荐),就可以随意使用了。
PS2:如果文档类的小文件比较多,经常移动办公,可以使用金山快盘,文件是同时保存在客户端和服务器的,本地修改保存后自动上传,比较方便。缺点是容量小,但是很容易就能弄到1T左右,文档类的足够了。
对我来说i5 3570k与e3-1230v2哪个好
C语言基础(01-引言及预备知识): C语言是一门功能强大的编程语言,它也是C++语言的基础。C语言属于中级语言。这里所说的中级是相对于计算机的底层硬件而言的。汇编语言是最低级的语言,它可以直接与硬件打交道。高级语言有Pascal、Basic、Fortran等等。高级语言的一条语句对应低级语言的很多条语句,任何高级语言编写的程序都要经过编译程序的编译、连接才能成为可以运行的程序。编译连接的过程也就是把高级语言翻译成机器语言(二进制机器码)的过程,而汇编语言是基本上与机器语言一 一对应的一种语言。这个翻译过程是由编译程序自动完成的。把C语言定为中级语言是有它的道理的,因为C语言既有汇编语言的存取底层硬件的能力,又具有高级语言的许多特点。熟练掌握了C语言,学习其它的各种编程语言应该是很轻松的了。
C语言的书写格式:
1) 一个C语言编写的源程序,必定有一个主程序(称为main()函数,在C语言中子程序称为“函数”(当然,不要理解成为数学里面的“函数”)。但是决不能有一个以上的main函数(即只能有一个)。
2) 函数语句块用‘{’括号开始, 以‘}’反括号结束。这样的花括号必须成对出现。
3) 表达式写在小括号里面,以‘(’括号开始,以‘)’反括号结束。
4) 函数不能嵌套,即函数里面不能再套函数。(每一个函数是完成一个特定功能的函数模块)
C语言的组成:
C语言是由许多函数组成的。其中只有一个主函数(main()函数)。C程序执行时总是从main函数的‘{’处开始,至main函数的反大括号'}'处结束。当然还有其它一些规则,这将在以后的学习中去熟悉它。
C语言的书写规则:
C语言在书写时有它自身的特点:书写格式比较自由,在一行里可以写多条语句,一个语句也可以分写在多行上。虽然如此,在书写源程序时还是要注意哪些可以自由书写,而哪些必须要按照书写规则来书写。
几条规则写在下面:
1) 一行内可以写几个语句,建议一行不超过两条语句;
2) 一条语句可以写在多行上;
3) C语句不需要写行标号;
4) 每条语句及数据定义的后面要写上分号以表示该语句结束;
5) C语言中注释用 /* */来表示;
6) 建议书写时用缩进格式;
7) 花括号、小括号都是成对出现的。
一个最简单的C程序的编写:
/* 程序代码*/ /* 注释部分*/
main() /*main是主函数名。紧跟在main后面的括号是放参数的。
括号里面为空说明main函数不需要参数*/
{ /*正写的大花括号表示main函数从这里开始*/
} /*反写的大花括号表示main函数到这里结束*/
说明:由于是一个演示程序,在函数体内并没有任何可以执行的语句,也就是这个程序什么事也不做。
这个程序就是这么简单: 写在一行上就是 main() { }
你在TC的编辑环境下把这段代码输入进去,按F9键编译连接,按CTRL_F5运行,一定很正常。但是什么结果也不会有,因为在main函数里面什么代码也没有。
下面再举一个可以向屏幕上输出一条信息的例子:
main()
{
printf("这就是C语言编写的程序!"); /*这一条语句的作用是向屏幕输出一条信息
”这就是C语言编写的程序!"*/
}
在这个程序中,main函数只有一条语句:printf("这就是C语言编写的程序!");这个语句的作用是向屏幕输出一个字符串。有关这个语句的知识以后再讲。现在要注意的是一个C语言程序的框架是怎样组成的。
C语言程序的几种文件格式:
1、 源程序---在TC集成环境中输入的程序文本称为源程序。源程序是一种文本文件。它是我们看得见并认识的一种文件。其扩展名为.C。例如你把文件保存为TEST,那么在磁盘上应看得到TEST.C这个文件。这样的文件可以用记事本打开。
2、二进制文件---写完了源程序后接着要做的是编译这个文件。在TC集成环境里是按ALT_F9键,编译后生成了一个二进制文件,这个二进制文件名为TEST.OBJ,也就是扩展名为OBJ的目标文件。
3、运行文件---最后一步是make(或Link),在TC集成环境里是按F9键Make之后生成了一个可以在DOS下运行的文件,其扩展名为EXE。如TEST.EXE。这个EXE文件是由第2步中的OBJ文件生成的。OBJ文件虽然是二进制文件,而电脑又是可以运行二进制文件的,为什么还要把OBJ文件Link为EXE文件才能运行?这里的知识就比较多了,这里不能多讲。但是要明白一点,在DOS下仅仅有了一个二进制文件还不能运行,因为操作系统要把这些二进制文件加以规划,把相应的数据、程序代码放到应该放的内存位置,这样的经过严密规划和组织好了的二进制文件才能运行。而这些只有在生成的EXE文件里面才做完了这些工作。
---------------------------------------
作业题:
1、下列程序中格式错在( )处。
A. main() B. int a,b,z;
C. a=2:b=3; D. z=a+b;
分析:A,B,D 没有错误。 C 中在a=2后面应该是分号而不应是":"号
答: C
2、C语言允许将一条语句写在两行上,下列语句不正确的是
A. int a,
B;
B. int a
,b;
C. int
a,b
D. int a,b
;
分析:C语言规定可以在语句中的任何一个分隔符或空格处换行。上面4个选项中D.有问题因为在D.中第一行的最后没有分隔符,而第二行只有一个分号,可以看做一个语句。所以D中的错误为:第一行是一个独立的语句,但是少了一个分号。
答: D
3. C语言的一行写不下时,可以
A. 用逗号换行 B. 用分号换行
C. 在任意一空格处换行 D. 用回车符换行
分析:C语言可以在任何一个分隔符或空格处换行,所以此题的正确答案是 C
答: C
4. 下列程序段中,哪一个是错误的注释方法?
A. #in/*包含*/clude<stdio.h>
void main()
{
}
B. #include<stdio.h>
void main/* */(/*主函数*/)
{
}
C. #include<stdio.h>
void main()
{ int x/*初始化*/=10;
/*打印*/printf("%d",x);
}
D. #include<stdio.h>
void main()
{
int x=10;
printf("%d",x);
/*打印x的值*”*=10*/
}
分析:根据C语言的规定:注释不能插在标识符的中间,在其它有分隔符的地方都可以插入注释,上面四个程序段中只有A是将注释插入在标识符的中间了。所以A是错误的。
答: A
5. C语言程序是由( )组成的?
答:C程序是由函数组成的。
6. C程序运行时,运行的是什么文件?
数据的类型:
在程序中要处理大量的数据,把这些数据按其特点分为几种基本的数据类型,它们分别是:
1 、整型 2 、字符型 3 、实型
还有其它的一些扩展的数据类型,但是开始学习时要先熟悉这三种基本数据类型。
在 C 语言中这几种数据类型用符号表示如下:
整型数据类型 int /* 一般指可以运算的数,如自然数就是整型数据类型 */
字符数据类型 char /* 一般指文字,如英文字母;字符类型的 '1''2''3''4' 等 */
实型 float /* 也称作浮点型,记住 float 类型的数都是有小数位的,如 425.23*/
常量和变量:
常量――程序运行过程中其值不变的量,如一个整数 134, 一个字符 ‘a'
变量――程序运行过程中其值可以变化的量,如 int a; char b; 那么 a 和 b 都是变量。
符号常量 ――用一个“符号”来表示的一个“常量”称为“符号常量”。
符号常量有什么好处 ――在给符号常量命名的时候,按习惯取的名字与实际上的含义相符,可以“见名识意”;另外在需要修改常量的值的时候,只需要修改符号常量的定义部分即可,非常方便。
符号常量的定义方法 ―― #define 符号 常量
例: #define NUMBER 30 /* 定义了一个符号常量,在这里是用符号 NUMBER 表示整数 30 ,以后在程序里就可以
用符号 NUMBER 代替整数 30 进行运算 */
main()
{
int a=20; /* 把常量 20 赋给整型变量 a*/
int c; /* 定义了整型变量 c*/
c=NUMBER+a; /* 变量 c 的值此时为 50 ,符号常量 NUMBER 参与了运算 */
}
变量的定义方法 ――在变量的名字前面加上一个变量的数据类型,以说明已定义的变量可以用来存放什么样类型的数据。
例: int a; /* 定义了一个整型变量,以后这个变量只能存放整型类型的数 */
char b; /* 定义了一个字符型变量,以后这个变量只能存放符字符型数据 */
怎样把常量值赋给已定义了的变量 ――用一个 = 号赋值。
例: int a; /* 定义一个整型娈量 a*/
char b; /* 定义了一个字符型变量 b*/
a=20; /* 用 = 号完成赋值,赋值后变量 a 的值此时为 20*/
b='d' /* 把常量字符 'd' 赋给变量 b ,此时变量 b 的值是字符 'd'*/
变量赋值时一种更灵活的方法 ――可以在一行上给多个相同数据类型的变量赋值,变量之间用逗号分隔。
例: int a,b,c,d; /* 定义了 4 个整型变量 */
char e,f,g; /* 定义了 3 个字符型变量 */
深入理解变量 ―― 1 ) 1 个变量必须有一个变量名。 2 )变量必须有其指定的数据类型
3 )变量一旦被定义,它就在内存中占有一个位置,这个位置称做该 变量的地址 。
4 )每一个变量都有其对应的值。
l 一定要牢记变量的这 4 个特性。
变量使用时的注意事项 ―― 1 )变量在使用之前一定要先定义,使用一个没有定义的变量是错误的。
2 )变量必须在一个函数的开始部分定义。(这个限制在 C++ 中不存在)
例题:写一个 2 个整数相加的程序。
/* 解题思路:求 2 个整数相加,必定要先定义 2 个变量来存放这 2 个数,另外还需要 1 个变量用来存放
相加的和,所以共需要定义 3 个整型变量 */
/* 注意每次在写 C 程序的时候一定要注意书写格式 */
main()
{
int a,b,c;
a=20,b=30; /* 在这里指定变量的值,因为还没有讲输入输出函数,只能这样了。 */
c=a+b;
}
想一想,这样简单的一个题,需要知道的知识面却不少。 用到了上面所讲的哪些知识?
C语言中的库函数――我们编写C语言程序时要写许多代码,这些代码是用基本程序语句如运算符、表达式、几种语句结构来组成。这些语句组成了多个不同的函数,由多个函数组成一个完整的程序。实际上如果程序中的语句都要由自己来写的话,那么工作量是很大的了。并且有一些完成基本任务的函数如输入输出函数是经常需要使用的。这样的一些常用的完成基本任务的函数有许多已经由提供编译程序的公司为我们写好了。这些已经写好的函数放在TC或者BC编译器的文件中。所谓“库函数”,就是存放“函数”的“仓库”。在TC中,函数的“仓库”在哪里呢?在TC的.\LIB目录中。编写程序的时候,如果我们需要使用某个库函数,就要在这个程序开头指明这库函数存放在哪里,以便让编译程序到这个地方去找。这个指明库函数路径的语句称为“包含”语句,写做#include。完整的写法是:
#include <stdio.h>
#include 是包含的意思,<stdio.h> 是指明要使用的库函数在 stdio.h这个文件里面有说明。尖括号<>是必须要写的。而实际上,编译程序在stdio.h之个文件里根据库函数名可以在.\LIB目录下的LIB文件里找到相关的代码,写进程序里面去。使用不同的库函数时要用不同的包含,关于怎样使用#include,可以查看库函数的帮助。
有了众多的库函数,给编写程序带来了很大的方便。就象做房子要用砖和瓦一样。如果没有砖和瓦,做房子自己要挖土烧砖,可想而知,那样做房子的难度有多大。写程序也是这样,有了库函数,在需要完成某些任务时,找到相应的库函数调用一下就可以了,不需要自己一点一点的写代码。在学习编程的同时要多多了解一些库函数的特点及用法,对编写程序是有很大的好处的。
(在Windows下编写程序,需要了解的“库函数”就更多了,可以说不了解库函数就不会编程。VC中用的是MFC,Win32中用的是API,它们都是函数库)
先了解二个库函数――1、scanf函数 /*格式化控制台输入函数*/
函数原型:int scanf(control_string....); /*看上去很复杂。没关系,以后自然会明白的*/
使用例:
void main()
{
int a,b,c; /*定义了三个整型变量*/
scanf("%d%d",&a,&b); /*从键盘输入二个整数到娈量a和b中*/
c=a+b; /*把变量a与b相加的和送给变量c*/
}
下面仔细讲一下scanf函数各参数的用法:
可以看到在小括号里有二个%d,后面有二个变量a和b。二个%d的写法为"%d%d",注意凡是这样的符号都要写在双引号里面,而变量则写在双引号的外面并用逗号分隔。这个%d我们称为格式化说明符,第一个%d用于说明第一个变量a,第二个%d用于说明第二个变量b,这样的顺序是一一对应的。%d格式符说明了后面输入的变量值是整型数。
另外注意的是二个%d是靠在一起的 %d%d,凡是这样的写法,在输入数时,对于二个数之间的分隔是用“空隔键”来实现的。如输入30和50这二个数形式为 30 50 如果二个%d写成%d,%d中间有一个逗号,那么在输入数据时也一定要在输入的数之间加上逗号,如 30,50。
再来看一下变量的写法,可以看到在每一个变量名的前面都有一个&号,这个&号是取变量地址的意思,那么&a写在一起就是变量a的地址,&b写在一起就是变量b的地址。
上面的scanf函数的作用就是把从键盘上输入的二个整数分别送到变量a和变量b的地址里面去。这个&号是非常重要,不要写漏了。
scanf函数的格式说明符(格式说明符说明了下一步将读的是什么类型的数据)
格式码 含义
%c 读一单字符
%d 读一整数
%i 读一个浮点数
%e 读一个浮点数
%f 读一个浮点数
%g 读一个浮点数
%o 读一个八进制数
%s 读一字符串
%x 读一十六进制数
%p 读一指针
%n 读一个指针收一个等于到目前为止输入的字符数止的整数
%u 读一无符号整数
%[] 扫描一字符集
例:从键盘输入二个字符,一个大写,一个小写,然后把这个小写字符转换成大写,大写字符转换成小写。
#include<stdio.h> /*因为在程序里用到了库函数scanf,所以要使用包含#include<stdio.h>*/
void main()
{
char ch,chh; /*定义了二个字符型变量*/
scanf("%c%c",&ch,&chh); /*从键盘输入二个字符,一个大写,另一个小写*/
ch=ch+32; /*大写转成小写*/
chh=chh-32; /*小写转成大写*/
}
2、printf函数 /*格式化输出函数*/
函数原型:int printf(const char *control_string....);
说明:printf把变量的值或常量字符串输出到控制台(一般是显示屏)
使用例:
#include<stdio.h>
void main()
{
int a,b,c;
scanf("%d%d",&a,&b);
c=a+b;
printf("输出二个整数相加的和"); /*输出字符串常量,这里没有用到格式化说明符*/
printf("%d",c); /*把变量c的值用整型格式输出,这里%d是整型格式说明符*/
}
如果有几个变量的值要输出,用这样的形式:printf("%d %d %d",a,b,c);
从这个printf输出的格式中看出,每一个格式符对应一个变量,其对应顺序也是一一对应的,第一个%d对应第一个变量a,以此类推。注意在printf函数中,变量前面就不要加&符号了。
注意printf函数中几个%d之间留了一些空格,这里的用法与scanf相比有一点不同。在printf函数中格式符之间留多少空隔,输出的时候每一个输出的值之间就有多少空隔。如printf("%d %d %d",a,b,c);输出则为:20 30 50 (这里的数是设的)。如果写为printf("%d,%d,%d",a,b,c);则输出形式为 20,30,50
printf函数的格式符:
格式码 格式
%c 单个字符
%d 十进制数
%i 十进制数
%e 科学法表示
%E 科学法表示
%f 十进制浮点数
%g 用%e或%f中较短的的一个(如果是%e,用小写e)
%G 用%e或%f中较短的的一个(如果是%E,用大写E)
%o 以八进制形式输出
%s 字符串
%u 无符号十进制数
%x 十六进制数(小写)
%X 十六进制数(大写)
%p 显示一个指针
%n 相关变量是整型指针,它所指处存放至今要写入字符的总数
%% 打印一个%号
printf函数使用例:
1)char ss="abcdefghijk"; printf("%s",ss); /*输出一个字符串,屏幕上显示"abcdefghijk"*/
2)unsigned int a=65535; printf("%u",a); /*以十六进制形式输出一个无符号数,显示为ffff*/
3)int a=123,b=456,c=687; printf("%d\t%d\n%d",a,b,c);
输出形式为:
123 456 /*'\t'是一个制表符,所以要移动一个制表位这么多空格数*/
687 /*'\n'是换行转义符,在前面字符常量里讲过。所以要换一行再输出687*/
C语言基础(05-运算符和表达式):运算符(也叫操作符)--运算符是一个表示特定的数学或逻辑操作的符号。如'+'号,表示了一个相加运算;'&&'号表示了一个逻辑‘与’的运算。由运算符把需要进行运算的各个量(常量或变量)连接起来组成一个表达式。
下面要讲的是标准的运算符,在C++中还有另外的一些运算符。运算符 进行的运算 所属类别 备注
[ ] 间隔符 标点符号
( ) 间隔符 标点符号
· 直接分量选择 双目操作符
-> 间接分量选择 双目操作符
++ 前增量、后增量 单目操作符
-- 前减量、后减量 单目操作符
+ 加 双目操作符、单目操作符
- 减 双目操作符、单目操作符
* 1)乘 2)间接引用 双目操作符、单目操作符
/ 除 双目操作符
% 求余 双目操作符
& 1)位‘与’2)取地址 双目操作符、单目操作符
! 逻辑‘非’ 单目操作符
&& 逻辑‘与’ 双目操作符
|| 逻辑‘或’ 双目操作符
<< 左移位 双目操作符
>> 右移位 双目操作符
< 小于 双目操作符
> 大于 双目操作符
== 等于 双目操作符
!= 不等于 双目操作符
^ 位‘异或’ 双目操作符
+= 和赋值 双目操作符
-= 差赋值 双目操作符
*= 乘赋值 双目操作符
/= 商赋值 双目操作符
<<= 左移赋值 双目操作符
>>= 右移赋值 双目操作符
&= 按位‘与’赋值 双目操作符
^= 按位异或赋值 双目操作符
|= 按位或赋值 双目操作符
%= 模赋值 双目操作符
= 赋值 双目操作符
: 按条件取值 双目操作符, 间隔符 标点符号
# 预处理符号 标点符号
## 预处理符号 标点符号
sizeof 求字节数
~ 按位求反
| 位‘或’
: 间隔符
; 间隔符
... 间隔符
要把表中的运算符仔细的分类是不容易的,因为同一个运算符,在不同的地方其含义是不同的。如*运算符,当作为乘运算时是双目操作符(所谓双目操作符,即运算时需要二个操作数),如3*6,那么3与6总共是二个操作数。当作为取值运算时就是单目操作符(所谓单目操作符是只需要一个操作数)如对一个数求反:!a,这里只有一个操作数a。
要记住运算符的二个特点,一个是运算符的操作对象,另一个就是运算符的优先级别。其中运算符的优先级别是最不容易搞清楚和最容易出错的地方。
在讲运算符之前讲一下“表达式”的概念:所谓表达式,就是用运算符把各个操作数连接成符合C语法规则的进行运算的式子。这里说的“符合C语法的规则”也很重要。如 a+b+5就是一个用算术运算符连接起来的表达式。
1、算术运算符:+、-、*、/、%
1)+、-、*、/ 分别是相加、相减、相乘、相除
2)% 求二个数运算的模。所谓求模就是求二个数相除后的余数。例:25/3的余数是1,可以说25%3的模是1。要注意的是求模运算时二个操作数必须是整数。如果求25.3/3.1这样是不能运算的。
下面写一个例子:
#include<stdio.h> /*程序中要用到输入输出库函数,所以包含了stdio.h*/
void main()
{
int a=10,b=20,c=30; /*定义了3个整型变量,并同时进行了初始化赋值*/
a=a*b+c; /*a*b+c组成了一个算术表达式,运算后的结果为230并把值*/
/*赋给变量a*/
printf("%d",a); /*以整型格式输出变量a的值。这里输出230*/
a=a%b; /*进行求模运算。因为没有余数,最后的模为0*/
printf("%d",a); /*输出变量a的值。这里输出0*/
}
下面是一个要考虑运算符优先级的例子:
#include<stdio.h>
void main()
{
int a=10,b=20,c=30;
a=c-a*b; /*这里就要考虑运算符优先级,*运算符的优先级比-运算符*/
/*的高,所以先进行乘运算。这里最后结果为-170*/
}
由上面这个例子看到,在一个有多个运算符连接起来的表达式中需要考虑运算符的优先级,这个例子很简单。关于运算符优先级的概念其实在小学生的算术运算中就有这样的概念了,只不过这里的运算符多了一些,要考虑的情况也就复杂了。
如果这个式子改写一下,写成:a=(c-a)*b;在运算时就以括号中的运算优先。
几个简化的运算表达式:
在C语言的程序中,经常看到这样的运算,如:i++;或者k--;这是运算符号的简化写法。
1、加1运算的简写
当一个变量进行加1运算时,如a=a+1;这是变量自身加1,简写为a++;
2、减1运算的简写
当一个变量进行减1运算时,如a=a-1;这是变量自身减1,简写为a--;
3、加1个常量运算的简写
当一个变量与一个常量相加时,如a=a+5;这是变量自身加5,简写为a+=5;
4、减一个常量运算的简写
当一个变量与一个常量相减时,如a=a-5;这是变量自身减5,简写为a-=5;
5、乘一个常量运算的简写
当一个变量与一个常量相乘时,如a=a*5,这是变量自身乘5,简写为a*=5;
6、除一个常量运算的简写
当一个变量与一个常量相除时,如a=a/5;这是变量自身除5,简写为a/=5;
运算符的结合性(或称作关联性)
在一个复杂的表达式中,常常有许多运算符和变量,这时就要判断优先级和结合性这二个因素。
例:-5+7; 这样的一个表达式用结合性来判断,因为运算符'-'和'+'相对于运算的数来说是‘左’结合的,所以就有'-5'和'+7'所以运算的结果为 2。
通过这个例子要知道什么是“左结合性”和“右结合性”
左结合性--变量(或常量)与左边的运算符结合
右结合性--变量(或常量)与右边的运算符结合
运算符的优先级和结合性表
优先级 运算符(高 ------→低) 结合率 运算符类型
高 ( ) [ ] -> . 从左至右 双目运算符
! ~ ++ -- (类型) sizeof + - * & 从右至左 单目运算符
* / % 从左至右 双目运算符
+ - 从左至右 双目运算符
<< >> 从左至右 双目运算符
< <= > >= 从左至右 双目运算符
== != 从左至右 双目运算符
& 从左至右 双目运算符
^ 从左至右 双目运算符
| 从左至右 双目运算符
&& 从左至右 双目运算符
|| 从左至右 双目运算符
?: 从右至左 三目运算符
低 = += -= *= /= %= &= ^= |= <<= >>= 从左至右 双目运算符
高 -------------→ 低
从表中可以看出一个规律,凡是单目运算符都是“右结合”的,凡是双目运算符都是“左结合”的。其中有一个?:运算符是三目运算符是右结合的,记住了这个规律,运算符的结合性也就掌握了。
如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。
由于将表熟记是比较困难的,为了防止产生歧义并提高可读性,应当用括号确定表达式的操作顺序。例如:
d = (high << 8) | low /*用括号把需要先运算的括起来*/
if ((a | b) && (a & c)) /*用括号把需要先运算的括起来*/
例:
下列程序输出的结果是
#include<stdio.h>
void main()
{
int a=2;
a%=4-1;
printf("%d",a);
a+=a*=a-=a*=3;
printf("\n%d",a);
}
A. 2,0 B. 1,0
C. -1,12 D. 2,12
分析:由于%=运算符的优先级别低于-运算,a%=4-1即是a%=3,等价于a=a%3即a=2%3=2,所以选项B和C是错误的。表达式a+=a*=a-=a*=3,计算时注意赋值类表达式的值和变量的值随时被更新,计算表达式的值,开始时a=2,表达式赋值是从左至右进行的,表达a*=3使得a=6,此表达式的值也为6,于是表达式a-=a*=3相当于a-=6=6-6=0,a的值为0,后面的计算就不用做了,所以a的值最终为0。
答:A
下列语句中错误的是
A.x=sizeof int;
B.x=sizeof 3.14
C.printf("%d",a=a+1,b--,c+1);
D.printf("%d",++x,x++);
分析:此题的选项A的作用是测试int类型所占内存的字节数,因为类型符要用括号括起来,这时缺少括号是错误的。
选项B是正确的。
选项C从表面上看似乎复杂一些,但其中的a=a+1,b--,c+1是一个逗号表达式,C语言允许使用这种表达式所以D也是正确的。
答案:A
下面的语句中,符合C语言语法的赋值语句是
A.a=7+b+c=a+7; B.a=7+b++=a+7;
C.a=7+b,b++,a+7; D.a=7+b;c=a+7;
分析:一般情况下,表达式不能放在赋值号的左边,所
锐龙7 1700x带vega64 600w电源够用吗
I5 3570K 可直接超频,整个平台都要上个档次,e3 1230v2不能超频,主板都比较好配,价格也ok. 还要看你具体用途了。如果是压缩,要处理多线程的任务,转码或者多媒体处理,渲染,E3强些,如果只是玩游戏,略弱。E3硬解码功能缺失 Sandy和Lvy平台的一大特点是有超块的硬解码功能(硬解的时候自动使用集显完成)V2应为没有集显所以只能软解。i5看似带个核显似乎浪费,其实可以用一个程序(名字忘记了,ivb推出后这个程序还有新功能:混合交火),这个程序可以让你游戏时用独显,空闲时(看片时。。。)用核显,降低功耗。
E3是散片,售后是个问题,只能店保,虽然很少出问题,但不能保证。个人喜欢i5,e3 1230v2 8线程对大部分游戏没有用,ecc内存功能看似美好可惜大部分主板根本不支持,完全没用。E3无智能响应。E3功耗低,相比的话一年也不过能为你剩下20元而已。I5 过几年了你觉得垃圾了,WIN 9 WIN 10出来了,给他超下频,他就又跑起来了。这个年代CPU都是过剩的,玩个简单游戏根本毛都看不出区别。家用不常玩游戏那就更没意义。"i5的价钱i7的性能"这句话里面很多猫腻的,自己掂量吧!!!!
选择I5没错的,什么E3,你看见这里的商家都推荐这个,商家说白了就是为了赚钱,E3赚得多,见这么简单,现在买东西你首先看的就是售后,真的,别的什么参数你又不专业,看不出什么,主流就成,服务才是王道!
最近追E3-1230,枪E3-1230的人那叫一个多啊,都被捧成神了,我也来说说对E3-1230的看法。同档次的装机方案,我更倾向i5 2320/2500K/3570K。
首先比较两个U的规格吧。E3-1230的主频是3.2G,比i7 2600主频低0.2G,E3-1230 V2换到IVB架构,比E3-1230提升100MHZ主频到3.3G,也比i7 3770低0.2G。线程数和缓存都和对应的i7一样,四核八线程,8MB的缓存。还有个区别是E3-1230 V2可以四核心睿频加2倍频也就是3.5G。
有些人要说,那ECC呢?E3-1230还多ECC呢。那好,我就先从ECC说起。ECC是内存错误校验,虽然你CPU支持了ECC,但并不代表你就能用ECC了。你需要支持ECC芯片组,或者说主板,和支持ECC的内存,并且还要在BIOS里开启ECC功能才可以使用。支持ECC的芯片组只有C200芯片组,还有7系对应的C210芯片组,H61?Z68?Z77?B75?因为没有输出而改叫P75的B75?不好意思,这些都不支持,所以用E3-1230配这些民用芯片组还想着ECC的你们可以洗洗睡了。
至于支持ECC的内存,虽然也不是很难买到,但多一个颗粒好歹也是贵一点钱啊,而且既然你的芯片组都不支持了,你还买ECC内存干什么。认为ECC内存傻快?那是你自己傻。先去脑补度娘百科ECC吧,我不浪费口水了。
大家追的ECC到底有什么用?我想那些盲目追的人未必都清楚吧。简单的说,内存在经过长时间读写后出错率会增大,ECC给每次读写加一位校验码,这样就可以大大减小出错率。有多大作用呢,内存作为一个处于中间的通道,上有CPU缓存下有存储系统,它们都是带ECC的。所以,对于一般民用PC连续开机时间通常不会超过24小时来说,内存ECC几乎没有用,那是给服务器好几个月不关机不重启才有用的。花钱买用不到的功能,你觉得值吗?
然后说质保。E3-1230现在都是散片的多吧,盒装的也是深包,忽悠你的,所以所谓的质保就是店保了。电脑硬件大家经常都不注重保修,为了图便宜水货随便买,这也不是没有原因的,一是因为它实在是太难坏了,尤其是CPU,反正也不指望用个十年八年的,坏掉之前早淘汰了,二是因为无论是店保还是正规的全国联保,接保修任务的人总会百般阻挠你,所以大家也就对质保失去信心了,坏了再买个新的呗,反正硬件这东西也就几百块钱千来块钱的,又不是出不起。真正的地雷硬件我们都知道避开不去踩,没地雷的坏了那只能怪自己RP差。所以质保这东西吧,两个字,浮云。
追E3-1230的人还看重它以下三个很重要方面:一个是四核八线程,YY啊。二个是它TDP比同代i7要低,95W->80W,77W->69W,省电啊。最后还有最重要的,便宜啊,i5的价格就可以买i7的性能。
YY吗?四核八线程看多了也就那么回事吧。实际上能用到八线程的机会少之又少,某些213游戏还会因为超线程导致性能低下呢,除非你有每天对着任务管理器八个窗口发呆的癖好。
省电吗?好吧就算省15W,算你一天8个小时开机时间,再算你8小时CPU全部满载,恭喜你一天省了0.12度电,也就是6分钱,再恭喜你一年下来总共省了20块钱,够吃一餐饭了。
便宜吗?1400大元的价格哦亲,对于一颗CPU来说,不算便宜了吧。相比i7来说,确实挺便宜的。等一下,有没有想过你值得花这1400块钱吗?还是回到第一个问题,我想真正能用得着八线程的人并不多吧,当然某些不把钱当一回事的人可以当我没说。
我并不是说E3-1230一无是处,对于某些人来说它还是有值得买的理由的。比如你要做个小型服务器,需要ECC,比如你经常做转码或者多媒体处理,这是能用到八线程并且有实质性能提升的,那你可以果断买E3-1230。但如果是冲着ECC,冲着八线程好看,冲着这样可以省钱省电,甚至以为这样就是玩另类的,我个人感觉是比较2,并不会显得你多懂,只能说被工包贩子们忽悠了。
有人鼓吹1230性价比高, 但不合理. 原因是, 这里所指的性能大多是小白们用不着却又以为自己用得着的性能, 比如超线程, 低功耗, ecc内存等等, 所以算下来的性价比高, 不过是虚高. 而如果只算普通用户用得着的性能, 那么这个U的性价比其实很普通, 跟i5-2320差不多, 再考虑到1230只有散片, 保修成疑, 1230就不值得这般吹捧.
若不是CHH站长的吹捧, 1230也不会被炒得这么热, 毕竟是服务器的CPU, 一般人装机不会想到用这玩意. 但自从CHH站长极力推荐1230后, 在各大DIY论坛上都会有菜鸟发帖问"1230这U怎么样, CHH都说性价比高, i5的价钱i7的性能". 这种帖子在CHH站长推荐1230前, 我是从没见过. 1230被广大小白知晓并购买, 菊花轮绝对功不可没. 事实上, 他也对此引以为豪, 在他的一篇测评文中, 就专门提到自己的推荐对于1230销量的影响作用. 其实既然都知道自己说的话这么有影响力, 他更应该对自己的言辞负责, 然而他竟自以为是地高调宣布1230+m5g+msata ssd为"标配", 简直是一套秀下限的脑残配置, 言辞也是狂妄自大, 无奈一众小白都是群声附和, 少数人的质疑都被淹没.
200分!关于计算机保密——满意者追加100分!
VEGA64有两个版本,一体水冷的是345W功耗,风扇散热器的是295W功耗,锐龙Ryzen7 1700X功耗95W,其它硬件80W功耗,在满载情况下算500W功耗,所以额定600W电源是刚好够用的,一般情况下电脑也很难达到满载功耗,徐非用专业压力软件测试,电源大点对硬件没有坏处的,所以最好是额定600W金牌电源,
金士顿和闪迪u盘哪个好?哪个更耐用呢?
是这样的!
BIOS密码设置一点通
适当设置BIOS密码可以为电脑带来一定程度的保护。设置密码的目的不外乎两种:
一是防止别人擅自更改CMOS设置;二是防止别人进入自己的电脑(包括进入操作系统等)。针对这两种情况,我们可以分别设置开机密码和进入CMOS的密码。设置密码时,必须在开机时按热键进入CMOS设置程序。一般来说,Award和Phoneix
BIOS按“Del”或“Ctrl+Alt+Esc”键,AMI BIOS按“Del”或“Esc”键。
下面以Award BIOS为例介绍一下具体步骤。在CMOS设置程序中有两个菜单:“Set Supervisor
Password”和“Set User Password”。这就是“设置超级用户密码”和“设置用户密码”菜单(如图1)。
不过,还要分别设置“Advanced BIOS
Features”主菜单中的“Security Option”子菜单的“Setup”和“System”选项,才能达到我们如前所述目的(如图2)。
注意:在AMI BIOS中相应的子菜单是“Password Check”;而Award和Phoneix BIOS则需要把“Aministrator Password is”子菜单选项设为“Enabled”才会令所有密码设置生效。
1. 设置进入CMOS的密码。一般情况下,“Security Option”菜单上的默认选项是“Setup”,这时我们只要在“Set
Supervisor Password”和“Set User
Password”菜单上任意设定一个密码就可以了。把光标移到“Set User
Password”上回车,出现一对话框(如图3),这时我们可以输入一至八位字符的任意密码(包括英文、数字、空键,要注意英文的大小写是有区别的)。连续输入两次相同的密码,再把光标移到“Se
&& Exit Setup”上保存后退出,CMOS密码设置就会生效,下次进入CMOS时就会弹出一对话框要求输入密码。
2. 设置开机密码。首先把“Security Option”菜单上的选项改为“System”,再用同上方法设置密码。设置完成后,无论是开机后进入操作系统或CMOS之前,系统都会要求输入正确的密码。
关于“Set Supervisor Password”和“Set User
Password” 菜单,顾名思义,前者的权限比后者高。一般情况下我们单独对两者之一进行设置时,效果会一样。但当同时对两者进行设置后,就会发现如用 “Set User Password”进入CMOS时,只能修改“Set User Password”一项;如用 “Set Supervisor Password”进入CMOS时就可以修改所有的菜单选项,包括“Set User Password”。
最后提示一下,当要取消所设的密码时,只要进入CMOS中把光标移到相应的密码设置菜单上连续按两次回车,当出现“Password
Disabled”提示就可以了
如何学习电脑硬件,本人刚入门一窍不通 还望有大师指点
金士顿和闪迪U盘都挺不错的,金士顿价格更贵也更耐用一点。
金士顿和闪迪都有使用固态主控的高端U盘,也有大量中低端使用普通主控的u盘,目前主流中低端闪存使用tlc,mlc是高端主力,需要加钱,再过几年可能mlc也要绝迹了,qlc普及,tlc将成为高端主力。
金士顿主力是常规u盘主控,有使用很高端的定制常规u盘主控的高端u盘,seq速度非常高,也有固态主控的高端u盘,价格极高。闪迪高端基本主打高性能主控,类似固态主控,4k速度很好。
中低端u盘里,闪迪有很多u盘使用自主研发的常规u盘主控,这里面一些主控的4k速度要明显高于其他品牌的常规盘主控,可以说是常规主控里4k速度最高的一类,性价比不错。
我觉得u盘只要是真的正品的,只要使用得当,一般都没什么问题。金士顿闪迪东芝常见的都能用。但是的高仿的一般都没怎么用就会坏,还有扩容u盘,没法用。
u盘有价,数据无价。不建议买便宜u盘,经济允许的话,还是建议购买价格更贵质量更好的金士顿U盘。
i7 4790K双超4.5 缓存电压设置问题
如果你是装机的话去电脑城打工两个月就好了,没事逛逛CHH论坛看看电脑报,当然一开始你会不懂,强迫自己看半年你就懂了,如果想要自己能熟练对比硬件参数那就是,看1年以上,我就是这么过来的
想在百度知道碰上“专业的人”,难如登天,尤其是这种相对比较冷门的问题。
我来消灭一下零回复吧,我用的华硕Z-AR主板配4790K,这主板有个TPU自动一键超频功能,配合华硕的这个AI suite 3挺好用的,我自己不用设置,这个是它的一档超频情况下设置的电压,可以看到缓存电压并没有动,单核睿频拉到了4.6,核心电压最高是1.325v
如果启用二档超频的话它是会超外频和缓存的,频率拉到了4.7,然而比较不稳定,我最高特效玩巫师3一段时间之后有可能会自动重启Orz。
后来我发现,TMD根本没有游戏能让4790K的CPU占用率超过70%,我超频个蛋啊纯粹是闲着,所以我现在回到默频用了,CPU工作温度降低了10度,简直了。
补充:你看,果然没专业的人回答你吧……
://bbs.nga.cn/read.php?tid=9249991
另外我发现真正专业的人普遍会说,其实教程什么都没啥用,因为每颗CPU体质不同,都得自己试。
上一篇:红米手机电池多大_红米电池最大