指针总结

指针

如果存在int a=1,*p=&a;
那么这里面&指的是直接取地址符号&a就是取得了存储a这个变量的地址。
p=&a指的是把&a取得的地址交给p;而p指的是a的值p才指的是a的地址。
函数指针:char (*p)(int a,int b)里面的(*p)(int a,int b)指的是指向一个有两个int 参数的函数char为你指向的函数的返回值类型。
对于数组指针的定义:如果存在int arr[10];
*arr指的是arr[0]的值arr指的是数组存储第一个值得地址;
!函数的值传递为单向传递形式参数不能改变main函数的实参不会改变值。
二维数组的指针传入:
int a[row][col];传入函数时函数头void f(int (*a)[col]){};主函数写f(a);

#include<stdio.h>
void f(int (*a)[2]){
	
	printf ("%d",*((*a+1)+1));
	
	
}
int main(){
    int a[2][2]={1,2,3,4} ;
    
    f(a);
    return 0;
}//输出结果为3;

#include<stdio.h>
void f(int (*a)[2]){
	
	printf ("%d",**a);
	
	
}
int main(){
    int a[2][2]={1,2,3,4} ;
    
    f(a);
    return 0;
}//此时输出结果是1;

所以说*(*(a+)+?):里面的a加的是行数而后面加的是列数;
地址的输出用:%p或者%d都行;
先有指向,才能使用,不然容易出错,可以先定义为null;
形参指针,实参是地址或者指针;
当指针指向字符串,可以用%s输出指针输出字符串
数组名就代表数组首元素的地址,数组名就是一个不能改变的指针;

char a[3]="ab"
char *p1=a;
char *p="abc";
printf ("%s",p);
printf ("%s",p1);
//输出abc;

\\\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值