C语言_指针总结

本文详细介绍了C语言中指针的基础知识,包括创建和声明指针变量、指针在函数间通信的作用。文章还探讨了指针与数组的关系,以及如何在函数中使用指针传递数组。同时讲解了指针变量的各种操作,并讨论了如何保护数组数据不被修改,以及指针在多维数组中的应用。
摘要由CSDN通过智能技术生成

0. 指针基础----*,&,指针在函数间的通信

指针: 指针(pointer)是一个值为内存地址的变量(或数据对象)

0.1 创建并声明指针变量
int val=1int* ptr;//声明指针变量为 int型
ptr=&val;//指针ptr指向val的地址
0.1.1 间接运算符(indirection operator) *

间接运算符也称为解引用运算符(dereferencing operator)、

如何理解 * 运算符

int val=1int bah=5int* ptr;
//使val的值等于bah的方式有
//方式1
bal=bha
//方式2:指针的方式
ptr=&bah
val=*ptr //解引用运算符使用

小结:与指针相关的运算符

  1. 地址运算符& : 后跟一个变量名时,&给出该变量的地址

    &nurse 表示变量nurse的地址

  2. 地址运算符* : 后跟一个指针名或地址时,*给出存储在指针指向地址上的值

    nurse=22;
    ptr= &nurse;//指向nurse的指针
    val=*ptr; //把ptr指向的地址上的值赋给val
    //执行以上3条语句最终结果会把22赋给val

0.1.2 声明指针

格式:

data_type * valiable_name;

类型说明符(data_type)表明指针所指向对象的类型,星号(*)表明声明的变量是一个指针

实例

int* ptr1;//声明一个指向int类型变量的指针
char* ptr2;//声明一个指向char类型变量的指针

声明并使用指针虽然指针所指向的是变量在内存中的地址,但是指针实际上是一个新的类型,而不是整数类型。因此,%p用来作为指针这个类型的格式转换说明符

0.2 使用指针在函数间通信
void interChange_pointer(int* u, int* v);

表示需要传入int*类型指针,而且传入的值会随着计算而发生改变

代码实例

#include<stdio.h>

void interChange_pointer(int* u, int* v);
void interChange_normal(int u, int v);

int  main(void)
{
   
 	int x = 5, y = 10;
 	printf("Originally x=%d and y=%d.\n", x, y);
 	interChange_pointer(&x, &y); //send address to function
	printf("Now x=%d,y=%d.\n", x, y);
	printf("-----------------\n");
	printf("Originally x=%d and y=%d.\n", x, y);
	interChange_normal(x, y);
	printf("Now x=%d,y=%d.\n",x,y);
	
	getchar();
        return 0;
}

void interChange_pointer(int* u, int* v)
{
   
	 int temp;
	 temp = *u;//temp get u's value not u's address
	 *u = *v;
	 *v = temp;
}

void interChange_normal(int u, int v)
{
   
	 int temp;
	 temp 
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值