指针认识

  学习C语言有一阵子了,总结一哈指针的知识。没有技术术语,和繁杂的说明,以实例为证。快速了解指针特性.
   指针是指向一块内存区域的,指针本身也在内存中占有内存空间.
   示例:
 main()
 {
  int i,*p;   /*声明整型变量i 和 整型指针 p*/
  /*将一个整型值赋给指针*/
   i = 2;
  *p = i ;        
  printf("%d/n",*p) ;
   p = &i; 
  printf("%d/n",*p) ;
    
 }
 
输出结果:
2
2

         main()
{
 char date[] = "abc",*p;
 p = date;   /*将p指向字符数组date的起始位置*/
 int i;
 for(i = 0 ; i < 3 ; i++)
  printf("%c,",*(p+i)) ; 
}
输出结果
a,b,c

 main()
{
 int date[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}},**p;
 int i,l;
 *p = date;   /*指针指向数组起始位置地址*/
 for(i = 0 ; i < 4 ; i++)
 {
  for(l = 0 ; l < 3 ; l++)
  {
   printf("%d," *((*p+l)+i)) ;
  }
  printf("/n");
 }
}
输出结果
1,2,3
4,5,6
7,8,9
10,11,12,

/*数组指针 列数已指定,行数不确定*/
 main()
{
 int date[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
 int (*aa)[3],i,l;
 aa = date;
 clrscr();
 for(i = 0 ; i < 4 ; i++)
 {
  for(l = 0 ; l < 3 ;l++)
  {
   printf("%d,",*(*(aa+i) + l));
  }
  printf("/n");
 }
 getch();

}

输出结果
1,2,3
4,5,6
7,8,9
10,11,12,

/*指针数组 行数确定,列数不确定*/
  main()
{
   char *date[3] = {"aaa","bbb","cccc"} ;
  int i,l;
  for(i = 0 ; i < 3 ; i++)
  {
 printf("%s/n", date[i] );
   }
}

输出结果:
aaa
bbb
ccc

/*指针函数  :该函数返回一个指针*/
int *aa();
main()
{
   int *p
   p = aa();
   printf("%d",*p);
}
int *aa()
{
    int *p;
    *p = 123;
    return p;

输出结果:
 123

/*函数指针 :充许通过函数指针调用函数*/
void (*str)();
void a();
void b();
main()
{
  str = &a;
  (*str)() ;
  str = &b;
  (*str)();
}
void a()
{
 printf("%s/n","aa");
}

void b()
{
 printf("%s","bb") ;
}

输出结果:
 aa
 bb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值