这是有声音的视频,请检查播放器或者声音输出设备。
这次学习的内容:指针(指针变量,指针的指针,指针作为参数,返回指针的函数,指向函数的指针)
//=====================================
指针变量
#include <stdio.h>
main()
{
int *p , a ;
a=100;
p = &a;
printf( "%d \n", a );
printf( "%d \n", *p );
}
//====================================
指向指针的指针
#include <stdio.h>
main()
{
int a, *p, **q;
a=100;
p = &a;
printf( "%d \n", a );
printf( "%d \n", *p );
q = &p;
printf( "%d ,%d \n", *p, **q );
}
//===================================
指针作为函数的参数(传地址)
#include <stdio.h>
test( int *pa )
{
*pa = 200;
}
main()
{
int *p , a=100;
p = &a;
test( p );
printf( "%d \n", a );
}
//==============================================
返回指针的函数, 函数返回一个指针类型,也就是一个地址
#include <stdio.h>
int temp;
main()
{
int a=100, *p;
int *test();
p = test( a ); // 返回一个指针型的值
printf( "test=%d \n", *p );
}
int *test( int x)
{
temp = x;
return &temp;
}
[17rumen@localhost ~]$ gcc c_10.c
c_10.c: In function ‘test’:
c_10.c:13: warning: function returns address of local variable
//============================================
指向函数的指针 , 指针是指向函数的首地址, 该指针可以访问这个函数
#include <stdio.h>
main()
{
int a=100, result;
int test();
int (*p)();
p = test; // 指针是指向函数的首地址
result = (*p)(a); // 用指针调用函数
// result = test(a);
printf( "result=%d \n", result );
}
int test( int x)
{
return x;
}
视频就到这里, 新接触的内容比较多,不过理解了, 变量在内存存储的形式,就容易了。
最好就是可以看到指针代码,就想象得出, 变量和指针在内存存储的情况。88