关于指针入门的最好的文章.net

时间:2022-11-29 15:48:40 作者:尼古拉斯赵四 综合材料 收藏本文 下载本文

“尼古拉斯赵四”通过精心收集,向本站投稿了5篇关于指针入门的最好的文章.net,下面是小编帮大家整理后的关于指针入门的最好的文章.net,希望对大家带来帮助,欢迎大家分享。

篇1:关于指针入门的最好的文章.net

什么是指针?其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据,这是一个非常重要的概念,有很多程序和算法都是围绕指针而设计的,如链表。开始学习如何定义一个指

什么是指针?其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据。这是一个非常重要的概念,有很多程序和算法都是围绕指针而设计的,如链表。开始学习如何定义一个指针呢?就像你定义一个其它变量一样,只不过你要在指针名字前加上一个星号。我们来看一个例子:下面这个程序定义了两个指针,它们都是指向整型数据。int* pNumberOne;int* pNumberTwo;你注意到在两个变量名前的“p”前缀了吗?这是程序员通常在定义指针时的一个习惯,以提高便程序的阅读性,表示这是个指针。现在让我们来初始化这两个指针:pNumberOne = &some_number;pNumberTwo = &some_other_number;&号读作“什么的地址”,它表示返回的是变量在内存中的地址而不是变量本身的值。在这个例子中,pNumberOne 等于some_number的地址,所以现在pNumberOne指向some_number。 如果现在我们在程序中要用到some_number,我们就可以使用pNumberOne。我们来学习一个例子:在这个例子中你将学到很多,如果你对指针的概念一点都不了解,我建议你多看几遍这个例子,指针是个很复杂的东西,但你会很快掌握它的。这个例子用以增强你对上面所介绍内容的了解。它是用C编写的(注:原英文版是用C写的代码,译者重新用C++改写写了所有代码,并在DEV C++ 和VC++中编译通过!)#include void main{ // 声明变量:int nNumber;int *pPointer;// 现在给它们赋值:nNumber = 15;pPointer = &nNumber;//打印出变量nNumber的值:cout<<“nNumber is equal to :”<< nNumber<int *pPointer;void SomeFunction();{int nNumber;nNumber = 25;//让指针指向nNumber:pPointer = &nNumber;}void main(){SomeFunction(); //为pPointer赋值//为什么这里失败了?为什么没有得到25cout<<“Value of *pPointer: ”<<*pPointer<int *pPointer;void SomeFunction(){// 让指针指向一个新的整型pPointer = new int;*pPointer = 25;}void main(){SomeFunction(); // 为pPointer赋值cout<<“Value of *pPointer: ”<<*pPointer<调用时,它分配了一个内存,并让pPointer指向它。这一次,当函数返回时,新的内存区域被保留下来,所以pPointer始终指着有用的信息,这是因为了动态分配。但是你再仔细读读上面这个程序,虽然它得到了正确结果,可仍有一个严重的错误。分配了内存,别忘了回收太复杂了,怎么会还有严重的错误!其实要改正并不难。问题是:你动态地分配了一个内存空间,可它绝不会被自动删除。也就是说,这块内存空间会一直存在,直到你告诉电脑你已经使用完了。可结果是,你并没有告诉电脑你已不再需要这块内存空间了,所以它会继续占据着内存空间造成浪费,甚至你的程序运行完毕,其它程序运行时它还存在。当这样的问题积累到一定程度,最终将导致系统崩溃。所以这是很重要的,在你用完它以后,请释放它的空间,如:delete pPointer;这样就差不多了,你不得不小心。在这你终止了一个有效的指针(一个确实指向某个内存的指针)。下面的程序,它不会浪费任何的内存:#include int *pPointer;void SomeFunction(){// 让指针指向一个新的整型pPointer = new int;*pPointer = 25;}void main(){SomeFunction(); //为pPointer赋值cout<<“Value of *pPointer: ”<<*pPointer<void AddFive(int Number){Number = Number + 5;}void main(){int nMyNumber = 18;cout<<“My original number is ”<void AddFive(int* Number){*Number = *Number + 5;}void main(){int nMyNumber = 18;cout<<“My original number is ”<,来看下面的例子:class MyClass{public:int m_Number;char m_Character;};void main(){MyClass *pPointer;pPointer = new MyClass;pPointer->m_Number = 10;pPointer->m_Character = 's';delete pPointer;}指向数组的指针你也可以让指针指向一个数组,按下面的方法操作:int *pArray;pArray = new int[6];程序会创建一个指针pArray,让它指向一个有六个元素的数组。另外一种方法,不用动态分配:int *pArray;int MyArray[6];pArray = &MyArray[0];注意,&MyArray[0] 也可以简写成 MyArray ,都表示是数组的第一个元素地址。但如果写成pArray = &MyArray可能就会出问题,结果是 pArray 指向的是指向数组的指针(在一维数组中尽管与&MyArray[0]相等),而不是你想要的,在多维数组中很容易出错。在数组中使用指针一旦你定义了一个指向数组的指针,你该怎样使用它呢?让我们来看一个例子,一个指向整型数组的指针:#include void main(){int Array[3];Array[0] = 10;Array[1] = 20;Array[2] = 30;int *pArray;pArray = &Array[0];cout<<“pArray points to the value %dn”<<*pArray<

原文转自:www.ltesting.net

篇2:c指针编程指南(19):C快速入门

一、C简介

1、C语言简介

C语言是一门语法 精简的语言,它的关键字仅有32个,C语言以main函数为主函数,程序编译运行后后,执行的就是main函数的内容,因此,纵观很多C语言程序,形成了一道有趣的风景线:头文件和许多c代码文件以main函数为中心和起始点构造,在main函数中调用了这些文件中编写的代码,引用头文件,C语言程序实质就是在程序中调用 C标准库提供的函数、其它C库提供的函数、操作系统提供的API接口、自己定义的函数,同时应用适当的数据结构和算法来完成工作。

C语言虽然精简,但却很强大,它不但能完成比它更复杂的程序语言所做的事情,而且还能做其他语言不擅长的工作,比如操作系统,LINUX、UNIX的内核、gnome桌面等等都是C语言的杰作,尤其在系统内核的设计与研发领域,它的“兄弟”C++也不是对手(至今为止,没有出现一款用C++制作的桌面系统或嵌入式系统的内核)。

2、C语言的关键字

auto :声明自动变量

short :声明短整型变量或函数

int: 声明整型变量或函数

long :声明长整型变量或函数

float:声明浮点型变量或函数

double :声明双精度变量或函数

char :声明字符型变量或函数

struct:声明结构体变量或函数

union:声明共用数据类型

enum :声明枚举类型

typedef:用以给数据类型取别名

const :声明只读变量

unsigned:声明无符号类型变量或函数

signed:声明有符号类型变量或函数

extern:声明变量是在其他文件正声明

register:声明寄存器变量

static :声明静态变量

volatile:说明变量在程序执行中可被隐含地改变

void :声明函数无返回值或无参数,声明无类型指针

if:条件语句

else :条件语句否定分支(与 if 连用)

switch :用于开关语句  case:开关语句分支

for:一种循环语句

do :循环语句的循环体

while :循环语句的循环条件

goto:无条件跳转语句

continue:结束当前循环,开始下一轮循环

break:跳出当前循环

default:开关语句中的“其他”分支

sizeof:计算数据类型长度

return :子程序返回语句(可以带参数,也可不带参数)循环条件

猜数字:

我们来一步步打造一个猜数字的游戏

游戏的大意是:输入一个1-500以内的正整数,程序根据玩家输入的数字,提示数字比正确答案之前大,或者数字比正确答案之间小,比如要猜的数字是85,玩家第一次输入90,提示比要猜的数字大,第二次输入80,提示比要猜的数字小,第二次输入85,提示猜中了。

下面来一步步打造这个游戏,帮助大家快速复习C语言基础知识。

(1)编写输入数字的代码,并编译执行。

dp@dp:~/cquick % cat guessnum.c

#include

int main{

int mynum;

printf(“你好,请输入一个数字:”);

scanf(“%d”,&mynum);

printf(“n你输入的数字是:%dn”,mynum);

}

接着在终端编译执行:

dp@dp:~/cquick % gcc guessnum.c -o myguess

dp@dp:~/cquick % ./myguess

你好,请输入一个数字:55

你输入的数字是:55

dp@dp:~/cquick %

纵观上面程序及其执行结果,可发现,C语言中可使用printf函数完成屏幕输出,可使用scanf函数接受指定格式的数据录入,此外,“n”表示换行符,“%d”表示整数格式。

(2)限制输入数字的范围

游戏的要求是1-500以内的整数

但是如果我们在上述程序中输入900、-10等不符合要求的数字,仍然能通过,

你好,请输入一个数字:900

你输入的数字是:900

你好,请输入一个数字:-10

你输入的数字是:-10

系统没有提示错误,

因此,需要修改程序限制玩家输入数字的范围

#include

int main(){

int mynum;

printf(“你好,请输入一个数字:”);

scanf(“%d”,&mynum);

if (mynum>500 ||mynum<1){

printf(“数字仅限于1-500之间,请重新运行本程序!n”);

}

else{

printf(“n你输入的数字是:%dn”,mynum);

}

}

运行程序:

dp@dp:~/cquick % gcc guessnum.c -o myguess

dp@dp:~/cquick % ./myguess

你好,请输入一个数字:200

你输入的数字是:200

dp@dp:~/cquick % ./myguess

你好,请输入一个数字:900

数字仅限于1-500之间,请重新运行本程序!

dp@dp:~/cquick %

上面程序使用了C语言的if…else…语句块,这是一个很多语言都有的机制(包括一些函数语言,比如haskell的if…then…else…),该语句块分2个部分,第1个部分if语句段,表示如果if后面跟的条件满足的话,执行if语句段,第2个部分是else语句段,如果if后的条件不满足执行,什么是条件满足与不满足,C语言可理解为如果条件的返回值非0表示条件满足,如果是0则表示条件不满足。

可以将多个条件组合成一个综合条件做为该语句块的条件,方式是使用||(表示或者)或&&(表示并且),比如上面程序中的条件:mynum>500 ||mynum<1

但是C语言中有一个关键字NULL,在C语言中,条件语句中出现的NULL和0的值是一样的,但NULL常用于指针和对象,0常用于int等整型数。这意味着,如果出现了下面类似的语句块,就意味着是对含有指针变量(指针变量通常用于指向其它变量的内存地址,比如下面代码中的mypoint1和mypoint2)的条件进行判断了:

if (mypoint1!=NULL){

……

}

if (mypoint2==NULL){

……

}

从运行效果来看,错误的数字没有被接受,但要想重新输入,必须重新运行一次程序。

(3)引入循环机制

C语言中可以使用while循环,语法格式如下:

while(条件){

语句块

}

或者使用do…while循环,语法格式如下:

do{

语句块

}while (条件)

通过循环,在玩家输入错误数字的情况下,给玩家重新输入的机会,而不是直接退出程序。

dp@dp:~/cquick % cat guessnum.c

#include

int main(){

int mynum;

int ispass=0;

while (!ispass){

printf(“你好,请输入一个数字:”);

scanf(“%d”,&mynum);

if (mynum>500 ||mynum<1){

ispass=0;

printf(“数字仅限于1-500之间,请重新运行本程序!n”);

}

else{

ispass=1;

printf(“n你输入的数字是:%dn”,mynum);

}

}

}

编译并运行:

dp@dp:~/cquick % gcc guessnum.c -o myguess

篇3:文章就可以让你入门SEO

现在网站越来越多,人们对SEO也都有听说,但是知道SEO是怎么回事的,还在少数,这篇文章可以教你入门SEO,目前国内常见的搜索引擎有两...

现在网站越来越多,人们对SEO也都有听说,但是知道SEO是怎么回事的,还在少数,这篇文章可以教你入门SEO。目前国内常见的搜索引擎有两个GOOGLE和百度,其中百度在国内的业务量占60%,GOOGLE的业务量占30%,虽然一直流传GOOGLE要离开中国,只是GOOGLE.CN可能在中国打不开这个网址,而GOOGLE.COM还一样可以打开,只是GOOGLE的业务不在中国开展而已,对SEO是没有什么影响的。其他搜索引擎yahoo,sogou,soso等业务占10%。

网站优化在国外的模式是:SEO+SEM+其他推广;而在国内这两年可以发现一个现象,各大站长网到处都开设了SEO专栏,比如ADMIN5,CHINAZ等著名站长网站,大家可以多去这个地方www.admin5.com/browse/9/ 都是SEO方面的文章也都很经典。

大家是否知道企业为什么做SEO呢?

1、性价比不错:比竞价排名和广告便宜很多。竞价排名或网络广告的费用现在是越来越高,而SEO相比有绝对优势,

效果是稳定的。

2、主要还是实效长:在有专业SEO维护的情况下可以长久有效,一年、两年甚至永远。

3、效果好:网站流量提升;注册用户增多;这些都是可以精确量化的,而不像广告,效果难以准确评估。

下面我们了解搜索引擎的基本工作原理吧我们所说的 GOOLGE机器人百度蜘蛛,英文是Robot,直译是机器人,在搜索引擎优化SEO中,我们经常翻译为:探测器。使用他们的目的是什么?就是取回往后的内容,标签,图片。搜索引擎的工作原理:采集信息 - 索引信息 - 信息检索。

当我们拿到一个网站,首先要做的就是做好网站的三大标签:title,Keywords,Description。然后做好网站地图尽量做两个XML和HTML的,把网站中不合理的FLASH改掉,要知道探测器对FLASH和JS是不认可的。注意关键词密度要掌握在2-8%。关键词密度太高了,也被探测器发现后视为作弊嫌疑。把网站的内部结构做合理后,就把网站提交给各个搜索引擎的登录口。然后每天对网站内容进行更新,注意更新的内容只有原创才有价值,每天在博客和论坛进行一些原创发贴。这样整个优化过程大家都了解了。

厚诚集智 成长无限 www.51hlht.com

清大燕园网校(edu.study365.cn)是国内最大的在线学习、网络课程平台!

篇4:林清玄最好的文章

内容简介

课文通过“我”(指课文作者)的外祖母去世忧伤不已,后来在爸爸一席话的启示下,从太阳落山、鸟儿飞行中,“我”明白了为什么要珍惜时间;从和时间赛跑的经历中,“我“体会到怎样珍惜时间。时间是无尽的。

作文原文

(经北师大版修改)读小学的时候,我的外祖母去世了。外祖母生前最疼爱我。我无法排除自己的忧伤,每天在学校的操场上一圈一圈地跑着,跑得累倒在地上,扑在草坪上痛哭。

那哀痛的日子持续了很久,爸爸妈妈也不知道如何安慰我。他们知道与其欺骗我说外祖母睡着了,还不如对我说实话:外祖母永远不会回来了。

“什么是永远不会回来了呢?”我问。

“所有时间里的事物,都永远不会回来了。你的昨天过去了,它就永远变成昨天,你再也不能回到昨天了。爸爸以前和你一样小,现在再也不能回到你这么小的童年了。有一天你会长大,你也会像外祖母一样老,有一天你度过了你的所有时间,也会像外祖母永远不能回来了。”爸爸说。

爸爸等于给我说了一个谜,这个谜比“一寸光阴一寸金,寸金难买寸光阴”还让我感到可怕,比“光阴似箭,日月如梭”更让我有一种说不出的滋味。

以后,我每天放学回家,在庭院时看着太阳一寸一寸地沉进了山头,就知道一天真的过完了。虽然明天还会有新的太阳,但永远不会有今天的太阳了。

我看到鸟儿飞到天空,它们飞得多快呀。明天它们再飞过同样的路线,也永远不是今天了。或许明天飞过这条路线的,不是老鸟,而是小鸟了。

时间过得飞快,使我小心眼里不只是着急,还有悲伤。

有一天我放学回家,看到太阳快落山了,就下决心说:“我要比太阳更快地回家。”我狂奔回去,站在庭院里喘气的时候,看到太阳还露着半边脸,我高兴地跳起来。那一天我跑赢了太阳。以后我常做这样的游戏,有时和太阳赛跑,有时和西北风比赛,有时一个暑假的作业,我十天就做完了。那时我三年级,常把哥哥五年级的作业拿来做。

后来的二十年里,我因此受益无穷。虽然我知道人永远跑不过时间,但是可以比原来快跑几步。那几步虽然很小很小,但作用却很大很大。

如果将来我有什么要教给我的孩子,我会告诉他:假若你一直和时间赛跑,你就可以成功。

篇5:林清玄最好的文章

盛暑,偶然从车窗里看见,几朵粉红的莲花,婷婷于田田碧绿,虽倏忽而过于眼,心中却已有美丽之莲。

今天,又经那曾经过的荷塘,一场淅沥的秋雨过后,那怒放之荷又该会如何呢?留心放眼,只有无穷碧的莲叶,已无零星赏心的莲花。

心中不免有些落寞。

落寞中依稀听到郑愁予那美丽错误的嗒嗒马蹄正从江南敲过,恍惚看见那等在季节里的容颜也如这莲花样开落。

汽车中途停靠,一沧桑平和之老妇牵一灿如春花之小女孩儿上车。脑中突想:那衰老的妇人也曾是花一般的少女吧,而那花一样的少女也终有一天会成为衰老的妇人吧?!

心中竟豁然了然。

莲花开落。

函数指针

net笔试题

六:指针(C语言)

再谈指针数组与数组指针

NET架构师的职责

笔试题数组与指针

初中英语作文入门

钢琴入门教学计划

法语入门学习方法

Visual Basic 10介绍.net

关于指针入门的最好的文章.net(共5篇)

欢迎下载DOC格式的关于指针入门的最好的文章.net,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档