day13 - 指针的学习

 指针

指针的重要性
表示一些复杂的数据结构
快速的传递数据,减少了内存的耗用
使函数返回一个以上的值
能够直接的对硬件所访问。
总结: 指针是C语言的灵魂
 
附注:
*的含义:
1.乘法
2.定义指针变量
int * p 
//定义了一个名字叫P的变量,int *表示P只能存放int变量的地址
3.指针运输符
该运算符放在已经定义好的指针变量的前面
如果p是一个已经定义好的指针变量
则 *p表示以P的内容地址的变量
 
如何通过被调用函数修改主函数普通变量的值
 
注意 *p 与 * p的区别。
是变量都会有地址的。
既然P是内存地址  ,而 *p就是内存地址的变量。
声明一般不使用形参
 
第八章: 善于利用指针
 
 
 
 
在定义指针变量时要注意如下问题:
 
1.
指针变量前面的“*”表示该变量的类型为指针型变量。指针变量名为 a ,b而不是 *a *b 
2.
指针变量只能存储地址(指针)不要将一个整数赋给一个指针变量。
int * a = 88;  //这样是不可法的             
解答:
原意是:将地址 88赋给指针变量a 但是系统没法去辨别它是否是地址,从形式来看100是整型。而整型只能赋给整型变量,而不能赋给指针变量/。所以是错误的!
 
怎么样去引用指针变量
 
1.给指针变量直接的赋值
p = &a;
 
 
  
  
  
  
  1. /* 
  2. 通过指针变量来访问整型变量的。  
  3. */ 
  4.   
  5.   
  6. #include <stdio.h> 
  7. int main(void
  8.     int a = 3
  9.     int b = 5
  10.     int * aa; //指针变量 int *  变量名字为:aa  
  11.     int * bb; //指针变量int * 
  12.     double c = 3.13
  13.     bb = &c;  
  14.     printf("%d\n",*bb); 
  15.   
  16.     aa = &a; 
  17.     bb = &b; 
  18.     printf("a==%d,b==%d\n",a,b);  
  19.     printf("aa==%d,bb==%d\n",*aa,*bb);  //*aa表示aa所指向的变量输出来。  
  20.     // 3 and 5  
  21.       
  22.     return 0
  23.   
  24. /* 
  25. 注意文中出现的两个地方: 
  26.   
  27. 前面两个 (* aa * bb ) 
  28. 表示定义了两个不同的指针变量 
  29. 它们前面的只是表示该变量是指针的变量  
  30.   
  31. 而程序最后面的两个是指: 
  32. *aa :表示指针变量*aa所指向的这个变量  
  33. */  
  34.   
2.引用指针变量指向的变量
如果已经执行力 p = &a 即指针变量P指向了整型变量a的地址
printf("%d\n",*p);
 就是把引用指针变量所指向的变量输出来。   int 变量  int * p 指针变量
 
作用:其作用就是与整数形式输出指针变量P所指向的变量的值。也就是把a变量里面的内容输出来。
 
如果有如下语句
 
*p = 1;
表示讲 1 赋值给p当前所指向的变量,如果p指向了a的,则相当于1赋值给了a,则a = 1;
 
 
引用指针变量的值,如:
printf("%o\n",p);
作用就是:
 
以八进制数形式输出变量p的值,变量p的值如果是指向了a,那么就会把a的地址值输出来则 &a
 
有两个运算符号:
 
1.指针运算符(间接访问运算符) * p
2.取地址运输符 &a
 
 
不浪费时间,努力的去学习。
 
 
 
 
 

你可能感兴趣的:(数据,的)