c语言中指针变量的定义,C语言 关于指针变量的概念 急急急

1,C语言 关于指针变量的概念 急急急只能给指针赋值地址 。指针变量顾名思义就是指向某个地址的变量,所以指针其实就是个地址 。你把1000赋给p,那么其实是把地址1000给了p , 但是1000这个地址存的是什么东西,没人知道 , 可能是某段文字中的一个字母,某个表中的一个数字,可能是系统里面一个很重要的文件开头,可能是任何东西 。int *p;p=1000;//错的int i=10;int *p;p=&i;//把ide地址给pa 错误 , 指针也是一个变量?。?变量赋值就可以运行?。?对于指针变量 , 注意:赋的值必须是已经映射的虚拟地址,根指向什么数组元素没有必然关系 。b正确, sizeof (数组名)是计算的数组容量,就是数组元素个数*每个元素字节数,sizeof (指针变量名),计算的指针变量类型的的size,结果是4.c 正确,int a[5];int *p=a; *p++,*(p++),*(++p)是可以的d正确,数组country[]元素存放的每个字符串的首地址 。
2,什么是c语言里面的指针变量c语言怎么将变量里面的值赋给指针,方法如下:比如int a;int *p; p指向储存整形数据的空间 。p=&a;保证p与&a为同一类型 。赋值 :将某一数值赋给某个变量的过程,称为赋值 。将确定的数值赋给变量的语句叫做赋值语句 。各程序设计语言有自己的赋值语句;赋值语句也有不同的类型 。所赋“值”可以是数字,也可以是字符串和表达式 。存放变量地址的变量是指针变量,用来指向另一个变量 。容易混淆的是变量的指针,它是变量的地址 。为了表示指针变量和它所指向的变量之间的关系 , 在程序中用“*”符号表示指向,例如,i_pointer代表指针变量,而*i_pointer是i_pointer所指向的变量 。int a=30;a是个普通变量,类型是int型(注意这点),可以给变量a任何一个不超过整型范围的数值 。int* p;p就是个指针变量,类型是int*型(注意这点,你可以把p的类型看作新类型,你只能给p赋地址,如上变量的地址是&a 。它不能存别的东西,它也有自己的存储空间,里面只是个地址如0xff1223 。通俗一点:你把一块钻石放在一个别人找不到的盒子里,为了你以后能找到 , 你把盒子放的地方纹在你的脚底板上,呐,现在,你的脚底板就是指针变量,盒子就是普通变量 。以后 , 脚痒了,就可以抓抓,一看有个坐标,你思考这个坐标是放什么东西呢,然后就顺着坐标找到了盒子,打开盒,发现钻石 。
3,c语言中指针变量怎么理解怎么用指针变量是一个变量,它保存的是另一个变量的内存地址 。你如果知道了这个指针变量保存的值 , 就可以知道它所指向变量的内存地址 , 于是就可以间接访问到那一个变量 。定义:指针变量类型 *指针变量名1, *指针变量名2, ... ;例如:int main(void)int *p;/*定义*/int a;p = &a;/*把a的地址赋值到p中*/*p = 1;/*间接访问a*/return 0;}把指针作为函数的参数传递,可以使函数可以访问函数外部的变量,例如:void swap(int *a, int *b)int c;c = *a; *a = *b, *b = c;}指针也可以用于传递数组 , 数组名本身就是一个指针:void func(int a[], int n)指针还可以指向指针 , 指向结构体(struct),指向数组int **p;/*指向int指针*/struct XXX *p;int (*p)[100]; /*指向一个int[100]数组,括号不可少*/我是这样理解的:在c语言中 , 你需要定义变量 , 那么你所定义的这个变量本身你要理解两层含义:(1)变量中的值是多少?有了值我们可以直接拿变量参与运算 , eg.int a=5;在计算的时候a就表示5;(2)变量存储在内存中的什么位置?变量的存储位置 , 就是变量的地址 , 那么这个地址可以用指针来存储,eg.int a=5, *p=&a; 在这里p就是指针变量 , 存储了变量a的地址,这个时候你要是用a变量的值,即可以直接用a,也可以用*p , *p是通过p这个指针(也就是a的地址),间接的找到a,在程序中*p与a是等价的 。不知道你会不会汇编指针其实就是寄存器间接寻址 我觉的这样解释最直接容易理解,当然是要你会汇编的话,不懂的话 , 指针其实是个变量只不过这个变量的值是地址指针变量是一个变量,它的值是另外一个变量在内存中的地址,如:int a = 5;用5初始化变量aint* ptr = &a;用变量a的地址初始化指针ptr【c语言中指针变量的定义,C语言 关于指针变量的概念 急急急】
4 , 关于C语言中的指针指针就相当于是一个地址 。指针相当与房间的号码,指针指向的内容相当于房间里面的东西 。int a = 5;int *p = a;p指向a房子,a相当与房子,a里面的东西是5.首先,指针是指一个指向某一变量内存地址的一个指针变量(也算是一种变量,与普通变量不同的是,它是存放另一个变量的内存地址,也就是一个指针型的变量).其次,指针变量的值是存放的是另某个变量的内存地址.例如:int a=10;//假如a的内存地址为0x00000012(不定的)int *p;//定义一个指针变量p*p = &a;//把变量a的内存地址赋值给指针变量p,既p=0x00000012int b;//定将一个bb = *p; //即b值为p所指的内存地址的值,就是内存地址为0x00000012的值,相当于b=a;所以这里b=10简单的说 。指针就是地址 。就是一个存放地址的变量,,指针本身是整型的 。。但可以指向不同的数据类型的地址 。。。如int a=10,*p=&a;那么*p就是指针 。*只是一个标识符,说明后面的变量是存放地址的 。。所以p存放着a的地址 , 而*p就是10. 。。记住这个就行了int a=0;int *p;//这个就是指针*p = &a; //&这个,就是取址记住这个,就OK了指针是C语言的精髓啊 , 其主要作用有间接引用和动态分配 。间接引用时和引用的作用一样,就是对指针操作相当于对数据本身操作 。在传递函数参数的时候尤其有用,特别是参数是一个类类型的话 。因为函数是值传递,在传入实参时会有一个拷贝,用指针或引用可以克服这一浪费 。但是由于引用更加安全和简洁,在这一块推荐使用引用 。指针的另外一块就是对数组的操作了,数组本身是一组连续的存储单元,用指针加上偏移量的时候就可以实现方便访问了 。指针的最精髓的作用是内存动态分配,在构造链表和其他复杂的数据结构时功不可没 。如果你能很好的理解指针,你的c语言就能进入不同的阶级了 。至少你不再是初学者了 。至于例子不好举出 , 还是参考下教材吧 。我们的例子难以说明问题的 。通过指针访问它所指向的一个变量是以间接访问的形式进行的,所以比直接访问一个变量要费时间,而且不直观,因为通过指针要访问哪一个变量,取决于指针的值(即指向),例如\"*p2=*p1;\"实际上就是\"j=i;\",前者不仅速度慢而且目的不明 。但由于指针是变量,我们可以通过改变它们的指向, 以间接访问不同的变量,这给程序员带来灵活性,也使程序代码编写得更为简洁和有效 。指针变量可出现在表达式中, 设int x, y *px=&x;指针变量px指向整数x, 则*px可出现在x能出现的任何地方 。例如:y=*px+5; /*表示把x的内容加5并赋给y*/y=++*px; /*px的内容加上1之后赋给y [++*px相当于++(*px)]*/y=*px++; /*相当于y=*px; px++*/ 5,C语言中的指针是什么详细说明指针是C语言中广泛使用的一种数据类型 。运用指针编程是C语言最主要的风格之一 。利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;并能象汇编语言一样处理内存地址 , 从而编出精练而高效的程序 。指针极大地丰富了C语言的功能 。学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志 。同时,指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念 , 还必须要多编程,上机调试 。只要作到这些,指针也是不难掌握的 。地址指针的基本概念在计算机中 , 所有的数据都是存放在存储器中的 。一般把存储器中的一个字节称为一个内存单元 , 不同的数据类型所占用的内存单元数不等 , 如整型量占2个单元,字符量占1个单元等 , 在前面已有详细的介绍 。为了正确地访问这些内存单元 , 必须为每个内存单元编上号 。根据一个内存单元的编号即可准确地找到该内存单元 。内存单元的编号也叫做地址 。既然根据内存单元的编号或地址就可以找到所需的内存单元 , 所以通常也把这个地址称为指针 。内存单元的指针和内存单元的内容是两个不同的概念 。可以用一个通俗的例子来说明它们之间的关系 。我们到银行去存取款时 ,  银行工作人员将根据我们的帐号去找我们的存款单, 找到之后在存单上写入存款、取款的金额 。在这里,帐号就是存单的指针,存款数是存单的内容 。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容 。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量 。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针 。图中,设有字符变量C,其内容为“K”(ASCII码为十进制数 75),C占用了011A号单元(地址用十六进数表示) 。设有指针变量P , 内容为011A,这种情况我们称为P指向变量C,或说P是指向变量C的指针 。严格地说,一个指针是一个地址,是一个常量 。而一个指针变量却可以被赋予不同的指针值,是变量 。但常把指针变量简称为指针 。为了避免混淆,我们中约定:“指针”是指地址,是常量,“指针变量”是指取值为地址的变量 。定义指针的目的是为了通过指针去访问内存单元 。既然指针变量的值是一个地址,那么这个地址不仅可以是变量的地址,也可以是其它数据结构的地址 。在一个指针变量中存放一个数组或一个函数的首地址有何意义呢? 因为数组或函数都是连续存放的 。通过访问指针变量取得了数组或函数的首地址,也就找到了该数组或函数 。这样一来,凡是出现数组,函数的地方都可以用一个指针变量来表示,只要该指针变量中赋予数组或函数的首地址即可 。这样做,将会使程序的概念十分清楚,程序本身也精练 , 高效 。在C语言中,一种数据类型或数据结构往往都占有一组连续的内存单元 。用“地址”这个概念并不能很好地描述一种数据类型或数据结构,而“指针”虽然实际上也是一个地址,但它却是一个数据结构的首地址,它是“指向”一个数据结构的 , 因而概念更为清楚,表示更为明确 。这也是引入“指针”概念的一个重要原因 。变量的指针和指向变量的指针变量变量的指针就是变量的地址 。存放变量地址的变量是指针变量 。即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量 。因此,一个指针变量的值就是某个变量的地址或称为某变量的指针 。为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”,例如,i_pointer代表指针变量,而*i_pointer是i_pointer所指向的变量 。因此 , 下面两个语句作用相同:i=3;*i_pointer=3;第二个语句的含义是将3赋给指针变量i_pointer所指向的变量 。也是一种变量,不过是用过存储地址的 。比如int*它就是用来存储int型变量的地址 。char*则是用来存储char型变量的地址 。

    推荐阅读