c语言的指针基础

本文详细介绍了C语言中指针的基础使用方法,包括指针的基本概念、如何进行变量交换、函数指针的定义与使用、指向常量的常量指针、指针的大小、空指针、值针数组及指针的指针等高级应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


这里对a和b进行了了交换,如果不是传了指针进去int* a和b 那a和b的值就不会交换

#include <stdio.h>
//作为函数的参数
void jiaohuan(int *a,int *b){
int temp=0;
temp=*a;
*a=*b;
*b=temp;
};
int main(){

  //作为函数参数
  int m = 5;
  int n = 6;
  jiaohuan(&m,&n);
  printf("%d\n",m);
  printf("%d\n",n);

}

    

函数指针
int add(int a,int b){
return a+b;
}
int main(){
int (*sum1)(int a,int b)= &add;

int result=(*sum1)(5,6);

printf("%d\n",result);
//用法二
// int (*sum)(int a,int b) =add; 


// int result = (*sum)(5,6);
// printf("%d\n",result);


// int (*sum)(int a,int b) =add; 


 // int result = (*sum)(5,6);
// printf("%d\n",result);


}

 

 指向常量的常量指针 ,

int a=7;
const int *const p=&a;
printf("%d\n",*p);

 

 

  定义一个指针,指针的大小

char str2[] ="abc"
char *str="abc";
int *p =(int *)str; //强制转为int类型
int a = 5;
int *p = &a;
//输出a的值
printf("%d",a);
//输出a的地址
printf("%p",&a);
*P = 8; //a=8

//输出这个数据类型的大小
printf("%lu\n",sizeof(int));


//输出指针的大小


printf("%lu\n",sizeof(p)); 

 

 空指针

#include <stdio.h>
int main(){ int a=5; //没有定义类型的指针 void *p =&a; printf("%d\n",*((int *)p)); }

 

值针数组

#include <stdio.h>
int main(){

//定义一个值针数组

int a=5;
int b=6;
 int *arry[2];
 arry[0]=&a;
 arry[1]=&b;
 printf("%d\n",arry[0]);
 printf("%d\n",arry[1]);
}

 

指针的指针 // 用的比较多
#include <stdio.h>
int main(){
//指针的指针 
int a=5;
int *p=&a;
int **P1=&p;
printf("%d\n",**P1);
}

 

#include <stdio.h>

int main(){

//指向常量的指针
 int a=6;
 //const int *p =&a;
 int const *p=&a;
 printf("%d\n",*p);

}
 

 }

基础的,比较简单!但要灵活运用就比较难了!

要记住指针只是一个指向地址的工具,因为这个我们就可一从根本去取一个值,和改变一个值。(仅仅代表个人立场)

转载于:https://www.cnblogs.com/kangniuniu/p/4921702.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值