C语言7

3、二级指针: 
  *p:一级指针:存放变量的地址。   **q:二级指针:存放一级指针的地址。   常考题目:   int x=7; 
               int*p=&x,**q=p; 
               问你:*p为多少?*q为多少?**q为多少?                        7           p         7                再问你:**q=&x的写法可以吗?    
                      不可以,因为二级指针只能存放一级指针的地址。 4、三名主义:(考试的重点) 
   数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。(考了很多次)    函数名:表示该函数的入口地址。 
   字符串常量名:表示第一个字符的地址。 
5、移动指针(经常加入到考试中其他题目综合考试)   char *s=“meikanshu”    while(*s){printf(“%c”,*s);s++;} 
这个s首先会指向第一个字母m然后通过循环会一次打印出一个字符,s++是地址移动,打印了一个字母后,就会移动到下一个字母! 6、指针变量两种初始化(一定要看懂) 

方法一:int a=2,*p=&a;(定义的同时初始化) 方法二:int a=2,*p;  (定义之后初始化)     p=&a;

7、传数值和传地址(每年必考好多题目) 
void fun(int a,int b)                     void fun(int *a,int *b)              { int t ;                                       { int t ; 
  t=a;a=b;b=t;                                  t=*a;*a=*b;*b=t; }                                                } main()                                     main() 
{ int x=1,y=3,                             { int x=1,y=3, 
  fun(x,y);                                 fun(&x,&y)   printf(“%d,%d”,x,y);                    printf(“%d,%d”,x,y); }                                             } 
这个题目答案是1和3。                        这个题目的答案就是3和1。 
传数值,fun是用变量接受,所以fun中      传地址,fun用指针接受!这个时候fun 的交换不会影响到main中的x和y 。        中的交换,就会影响到main中的x和y。 传数值,形参的变化不会影响实参。          传地址形参的变化绝大多数会影响到实参!

8、函数返回值是地址,一定注意这个*号(上机考试重点)    
int *fun(int *a,int *b)   可以发现函数前面有个*,这个就说明函数运算结果是地址                    { if(*a>*b)return a;     return a 可以知道返回的是a地址。 
  else return b;                                                                          } 
main() 
{ int x=7,y=8,*max;   max = fun(&x,&y);      由于fun(&x,&y)的运算结果是地址,所以用max来接收。   printf(“%d,%d”,)     
}                                              9、考试重要的话语: 
指针变量是存放地址的。并且指向哪个就等价哪个,所有出现*p的地方都可以用它等价的代替。例如:int a=2,*p=&a; 
    *p=*p+2; 
(由于*p指向变量a,所以指向哪个就等价哪个,这里*p等价于a,可以相当于是a=a+2)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值