能力值:
( LV3,RANK:20 )
|
-
-
2 楼
理解了这两个概念后看关键字!
1、auto 一个最宽宏大量的关键字
你可以认为他不存在,但不一定要知道有么个老大在!
2、register 一个反应最快的关键字
register:用来请求编译器 尽可能的将cpu内部的存储空间-寄存器 分配个她已
达到寻址访问的速度!register 你就当她 世界上最美的美女吧!你是轮不到的!
寄存器---cpu 和 内存之间的 桥梁
数据从内存里拿出来,先放到寄存器,然后又cpu从寄存器中读数据处理。然后再
放回寄存器中,在转存到内存中!cpu不和内存直接来往!
寄存器的存在时因为 ”速度“!另外有关寄存器的知识还很多!学破解 和外
挂制作一定要 和寄存器 打好交道!
和美女register大打交道的时候要注意:意味着 register变量必须是一个单个的
值,并且其长度应小于或等于整型的长度。而且 register变量可能不存放在内存中,
所以不能用取址运算符 “&”来获取 register变量的地址。
3、static 最名不符实得关键字
不要以为关键字 static 很安静!其实他也不是个省油的灯
C语言中他中俩个作用:
第一、修饰变量
变量分为全局变量和局部变量!他们都是存放在内存中的静态区。
静态的全局变量的作用域,仅限于变量被定义的文件中,其他的文件中即使你使exterm
声明也不能使用!所以在函数调用的时候一定要住以 变量的作用域!
静态局部变量。 在函数体内定义的,就内函数体内里用,就想你口袋里的钱就你用,
不给我用一样!其实更准确的比喻是这样的,你的时间就只能有你用有你支配,不能分享给别人!
当你去哪边的时候,你的一切都没了!在C语言中由于被 static修饰的变量总是存在内存的静态区
,所以即使这个函数运行结束,这个静态变量的值还是不会被销毁,函数下次使用时仍然能用到这
个值。
第二、修饰函数
用static修饰函数,就是使得函数成为 “静态函数”---指函数的作用域本文件中!
使用静态函数的好处,就是定义函数是不用担心名字有冲突!就想你给你的宝宝取名字时,不用担
一样,应为你宝宝上面有个家庭,有个村,有个乡、、有个青海省、、有个中国!
static 在 C 中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。
4、基本的数据类型:
int short long char float double
有关以上几种类型就多不将了!这都不知道,你就命中注定单身了!应为 int short
long char float double 是在C语言中的六个基本数据类型!怎么理解他们呢?小弟在这打个你恰
当的比喻:中国人都喜欢吃饺子,那你肯定见过饺子皮是怎么来的了(没见过的话,你可以回火星去
了)是不是有个模具啊,咔咔的在面就下饺子皮就出来了!而这六种数据类型就像不同型号着模具
咔咔嗲在 内存上几下 就出现了几个不同的的内存模块,就可以存放不同类型的数据了!
5、sizeof---C语言中的李宇春
sizeof 一个常年被人误解为是函数,就想李宇春常年被误认为是男的!
sizeof的身份有我给你当面鉴别。李宇春的身份就有你私下去鉴别了!
例子:
int i=1;
A,sizeof (int);B, sizeof (i) C,sizeof int D,sizeof i
在你的工具上试试!你看看结果是怎么样的? (*^__^*) 嘻嘻…… 你就会发现李宇
春原来也是MM啊!
6、signed 、unsigned 两个你女朋友判断你的关键字!
计算机底层只识别0、1!就像老师只关心作业做的对或错!不过你发现没,你copy
你女同桌的作业怎么就被老师发现了呢? 计算机有是怎么知道正负的呢?signed 、unsigned就出
场了。
signed、表示有正负之分。(小弟不才,就不做比喻了)
unsigned、表示无正负之分。只要是你爱我试真的就可以!(小弟不才,就不做比
喻了)
7、if、else完美组合!
if语句很简单。多不说了!但在使用的时候,还有写地方需要注意!
在这我就说一点:想想
if(1=i)和if(i=1)那个更使用些?答案是前者比后者好用,但后者比前者好!
这要和编译联系在一起,前者能避免一些错误情况的发生,而后者就是好看!(*^__^*) 嘻嘻……
这时候你是不是要考虑下 你找另一半的时候是不是要思考莫些问题啦?
对了忘说他们之间的相互嵌套!不要套 很多层!一般三层外的尽量调用函数!
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
8、switch 、case实力派组合!
实力派的组合switch、case 有着 更为强悍的功能!面对多分支问题,他可完美的解决!
其基本格式:
switch(条件)
{
case Value1:语句;break;
case Value2:语句;break;
case Value3:语句;break;
、、、
default:
break;
}
注意:
1、case后面的值的要求
(case后面只能是整型或字符型的 “常量”或“常量表达式”
2、case后语句排列的顺序
按字母或数字顺序排列各条case语句
把正常情况放在前面,而把异常情况放在后面
按执行频率排列case语句
9、do、while、for 最默默无闻的关键字
当某些事要多次重复的做!那你就找他们!do、while、for !他们是C语言中
的种循环语句.
下面我来带大家逐个认识下!
do,
使用的基本格式:
do
{
循环体
}
while(表达式);
while,
使用的基本格式:
while(表达式)
{
循环体
}
for,
使用的基本格式:
for(表达式1;表达式2;表达式3)
{
循环体 注释:表达式1----循环变量附初值
表达式2----循环条件
} 表达式3----循环体变量的增值
以上的前两种循环语句,看相似。但是有区别的!do-while是先执行一次循环体!再
去判断表达式,而while是先判断表达式!俩者在什么情况下你的用,我想你比我更清楚,应为你想
要那样的女朋友只有你自己知道了!
在使用循环语句的时候可能应需求 采用俩个辅助的关键 break 和continue 。他们
俩个都是结束循环用的!但是有区别的!break 表示结束终止“本层”循环。continue 表示结束终
止“本次”循环!
循环语句的精髓:在解决显示社会中的很多问题的时候,单一的循环是不能完成一道计
算
机的作业,c语言中循环语句的精髓就是能相互的嵌套,这样就可以将多循环的作业分成 若干次 利用
循环
嵌套就可以解决问题!但本人建议在使用循环嵌套的时候把循环保持在三层中最好!在多的话建议使用
函数
调用!应为C语言是结构化的程序设计,具有鲜明的结构化的风格是C语言的一大亮点!
10 、goto最不好控制的字
goto 语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格;goto 语句经常带来
错误或隐患。
(如有喜欢的可邮发:hacker1king@163.com大家一起探讨)
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
11、void若有若无的字
void的是意思是“空类型” 一般是若有若无的那种!但C语言中 它还是有一定的作用的。void
几乎只有“注释”和“限制”的作用.
void 几乎全部作用在于:
1、对函数的返回值的限制
2、对函数的参数的限制
void的优点,在不同类型的数据赋值的过程中,需要考虑到数据类型的转换。但是入时void的
话,就需要了!
还有一点要声明下,在C中为避免函数的返回值的类型,引起的问题和降低程序的注释,建议
要求,注明函数的返回值的类型,包括 空类型 void!
void * 就是所谓的空类型指针!使用是一定要注意。应为 涉及到内存控制。我在后面的说
指针的时候会说明的!
void不同int float 、、、等类型,在编译的时候,编译器给后者分配相对应大小的内存,
但void分配了多少?答案是 我不知道。我只知道 世界上的人 只有 男人和女人(泰国的不算)!void
就想你对你女朋友的爱 到底有多少呢?
12、return
return是用来终止一个函数并带回一个返回值。
return ( ); 括号可以省略,但我建议还是做个老实人,写上!
return返回的到底是什么呢?
来给你们经典的例子:
char *Love(void)
{
char LOVEZ[20]
、、、
通过一些判断得出你对你女友的爱 到底有多少
、、、
return LOEZ;
}
(*^__^*) 嘻嘻……拿去编译下!看看结果咋样?
O(∩_∩)O哈哈~ 错误了吧!
怎么会出错了呢?很简单,搞错对象了呗,爱错人啦!人家名花早和那个谁签 下了 同生
共死的协议书了!函数诞生之日 LOVEZ也随之诞生了!函数结束了 人家名花 LOVEZ早去殉葬去了!
13、const
const是constant的缩写,是恒定不变的意思,有译为常量常数的意思。而在C语言中有它修
饰还有另一层的含义。准确的说他不但修饰的是只读性的常数常量,在编译器编译的时候不知道其内存
存的是什么。也有人说const如果叫做readnoly的话更好理解,可见它的这层很容易被狐狸的作用。
const修饰只读变量,定义const只读变量,具有不可变性,因此,const修饰的只读变量的
必需在定义的同时初始化。
留个小实验自己下去亲自做下,加强理解和记忆以及提高日后写代码的经验,
在switch 语句中case后面用const修饰的只读变量试着编译下,看看结果,再思考下why?
这时候C语言学的还是那么回事的人会想起#define,但我告诉你const和define是有着本质
的区别的,首先你回到我前面罗列出来的关键字中找找看有没有define这个字。const定义的只读性的
变量从底层的汇编的角度来看的,只是只是分配了对应的内存地址,而#define给出的是立即数,所以
const定义的只读变量在程序的运行过程中只有一份的cpoy(它是全局的只读变量,存放在静态区),
#define定义的宏常量就不一样了,在内存中存放着若干的cpoy,#define在预编译的时候就可以替换
而const修饰的只读变量在编译的时确定的是其确切的值。#define宏没有类型,而const修饰的只读的
变量具有明确的特停的空类型。
既然是用来修饰的,就想美一样 不但可以修饰 女的-美女,食物-美食、、、、当然const
同样可以修饰其他的,我们来一次的看看const能修饰那些,以及修饰后的作用等等
const修饰一般的变量
一般常量指的是简单的但类型的只读的变量,在定义的这种只读的变量的时,修饰符
const 可以在类型符的前面也可以在后面,即以下的俩种方式都对。
const int i=1; 或 int const i=1;
const修饰数组
定义只读性的数组的时定义方式和以上两种相同,但别忘了初始化。
const修饰指针
const修饰的方式有以下的方式:
const int*p ; /*p可变,p指向的对象不可变*/
int const *p ; /*p可变,p指向的对象不可变*/
int *const p ; /*p不可变,p指向的对象可变*/
const int *const p ; /*p不可变,p指向的对象不可变*/
在这为大家说下编译器怎么解析这些语句的,有助于大家理解和记忆,你到看到这里,
说明很是支持我,我还有什么好保留的呢?
(*^__^*) 嘻嘻…… 谢谢支持哦!
在解析这些语句的时候 采用侧重法 意思就先忽略类型名,在看const离谁近 和谁关系
好,就去修饰它!
const(int)*p ;/*int被忽略const离*p近就去修饰它,而*p是指针,则*p指向的对
象是不可变的*/
(int)const *p ;/*int被忽略const离*p近就去修饰它,而*p是指针,则*p指向的对
象是不可变的*/
(int)*const p;/*int被忽略const离p近就去修饰它,所以p不可变,p指向的对象看
变*/
const (int) *const p; /*int被忽略,第一个const修饰*p第二个const修饰P,所以
*p和p指向的对象都不可变*/
const修饰函数的参数
const修饰符也可以修饰函数的参数,当希望中这个参数不被人一的修改,就看用const
来修饰,例如
void X_du( const int i);
这样就潜意识的告诉了编译器i在函数体内部能改变,防止了一些无意的修改。
const 修饰函数的返回值
const修饰符也可以修饰函数的返回值,返回值不可被修改,这在很多很多的软件中开发
中用到的,(*^__^*) 嘻嘻…… 想了解更多的话,去问百度大婶。
(*^__^*) 嘻嘻…… 看出来了吧, 你下载的那个外挂,你该了它的一些内容,但还是那样
,不能秒杀吧!问题就在这。恶心吧,那就好好的学,预期用别人的挂,还不如自己写个挂,在说下的
挂,99.99%都捆绑了木马。╮(╯▽╰)╭ 我用了那么多的挂,怎么我的号没被盗呢,(*^__^*) 嘻嘻…
…那只能说明你的号 太水了!
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
King┊灬破曉
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
严重支持楼主写书!
|
能力值:
( LV3,RANK:30 )
|
-
-
7 楼
被楼主的精神和勇气感动,支持一下
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
楼主弄成pdf版的就好了!
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
学计算机不到半年?
太有勇气了
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
支持是必须的嘛
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
lz精神可嘉,但学习计算机不足半年,不清楚lz对c的精华能够领略多少,从lz的少许文字中可以看出lz文采还有待提高,总体的说就是读起来毫无意味,书中的加上比喻是一个好的事情,但要言简意赅。还有lz“行云流水”的结构很让人乏味的,因为中国这种书太多了,可以结构题材出新,技术上的书籍近两年像《把脉VC++》中的茴香豆的N种写法,着实让人眼前一亮,很且发人深醒。
lz应该是看到现在市场上的C方面的书籍都是互相抄袭,而且涉猎太窄,毫无技术可言,更像是名词介绍。可是一本技术的书籍的诞生,他的背后是作者智慧的结晶,市场上大部分的书都不是真正的技术研究者写的,有的甚至就是编辑搜集资料整理而成的。
等你有一天真的深得语言的精髓,也许你就不会觉得写一本书是那么容易的事情了。
写这么多,没有打击lz的意思,lz精神可嘉,让我也很汗颜。同时也希望lz的书早日完成,那时候我相信你的想法会和今天不同的。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
任重道远!楼主加油吧!
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
if(1=i)和if(i=1)那个更使用些?
我句话很那个吧~-~
|
|
|