[关于c语言中返回值和返回指针的问题]int testA (void) { int b = 1 ; return b ; } char * testB (void) { char str[] = "abc" ; return str ; } int main() { printf( " the value of testA is %d n", testA(...+阅读
首先你要知道指针是一个变量,所以它具有普通变量的性质。比如你int a。a是一个变量。当你创建的时候,系统就会分配给他一个地址空间,它的长度是四字节的。你可以给这个变量a赋任何小于4字节的大小。指针也一样。它也有地址。它也有值。不同的是普通变量a,它存的是1,2,3这些数字。而指针存放的是别人的地址。事实上也是一个值。
简单点说。指针就是一个快递员。它有自己的家。但他平时要工作,所以很少会回家(指针的地址一般很少用到)。你会去在意快递员的家在哪吗?一般不会。你在意的是他的工作。快递员的工作是什么?快递员的工作就是取快递和送快递。所以他手上有很多的地址记录。这样他就可以根据地址去地址所在的地方传快递或拿快递。(在C里面就是到变量的地址里面改变变量的值,或者取变量的值。)
具体的应用的话,普通指针的应用是很简单的。跟普通变量一样。只是前面多了个*号。
如 char *p;
p=&a; (取a的地址,这样才可以去拿a的数据,或者传数据给a)
有两个概念可能容易搞混的,就是指针函数和函数指针。
函数指针,它是一个指针,所以具有普通指针的特点。也就是它也是取别人的地址,然后去别人的地址拿东西。跟普通指针不同的是,他是指向一个函数的。
指针函数,它是一个函数,它具有普通函数的特点,普通函数做什么的,函数是用来解决问题的一个方法。函数是有返回值的,void类型就是返回无嘛。指针函数不同的就是它的返回值是一个指针。
所以你怎去理解指针。你要把它跟普通的你已经理解的概念联系起来。比如你定义一个指针,
char *p你就可以把它跟char a联系起来。你要用指针函数,你就想想普通的函数是怎么操作的。不要把它想得太难。其实也就是那么回事。
以下为关联文档:
c语言中extern怎么用举个简单例子说明下谢谢extern是外部声明用的,用来声明外部的函数或者变量定义。 例如,你在1.C中定义了一个函数和变量: void fun1(void); int a = 0; 而你要在2.c中调用 fun1(),并且读取a的值, 那么需要...