指针3

#include <stdio.h>

/*
2018-05-28
如何通过被调函数修改主调函数普通变量的值

	1,实参必须为该普通变量的地址
	2,形参必须为指针变量
	3,在背调函数中通过
		*形参名 = 。。。。。
		的方式就可以修改主调函数相关变量的值


*/

f(int *i,int *j)
{
	*i = 4;
	*j = 5;
	return 0;
}



int main(void)
{
	int a = 3,b = 5;
	
	f(&a,&b); //发送a和b的地址到函数f,然后修改该地址的数值
	printf("a = %d,b = %d\n",a,b);


}
#include <stdio.h>

/*
	指针和数组

		指针和一位数组
			一维数组名
				一维数组名是个指针常亮
				它存放的是一维数组第一个元素地址
				程序		
					printf("%#X\n",&a[0]);
					printf("%#X\n",a);
				输出
					0X19FF2C
					0X19FF2C
				

			下标和指针的关系
				如果p是个指针变量,则
					p[i] 永远等价于*(p+i)
				
				界定一个一维数组需要的几个参数【如果一个函数需要一个一维数组,则需要接收该数组的那些信息】

			指针变量的运算	

		指针和二维数组

*/
//________________________________________________________________________________________________
/*
//一维数组名
int main(void)
{

	int a[5]; //a是数组名,5是数组元素的个数,元素就是变量a[0]--a[4]

//	int a[3][4]; //3行4列 a[0][0]是第一个元素 a[i][j]是第i+1行j+1列


	
	printf("%#X\n",&a[0]);
	printf("%#X\n",a);
	
	return 0;
}
*/

/*
//下标和指针的关系
int main(void)
{
 int a[5] = {1,2,3,4,5};
 int i;

 for (i=0; i<5; ++i)
	{
		//printf("%d,%#X\n", a[i],&a[i]); //a[i] == *(a+i)
		//printf("%d,%#X\n",*(a+i),(a+i));
		//printf("%#X\n",a); //a是一个地址
	}
 return 0;
}
*/


//——————————————————————————————————————————————————

/*
//界定一个一维数组需要的几个参数【如果一个函数需要一个一维数组,则需要接收该数组的那些信息】
//两个,起始地址和数组长度
void f(int *p,int len)
{
	int i;
	for(i=0;i<len;i++)
	{
		printf("%d,",*(p+i));	
	}
	printf("\n");	
}

int main(void)
{

	int a[5] = {1,2,3,4,5};
	int b[6] = {-1,-2,-3,-4,-5,-6};
	int c[100] = {1,99,22,33};

	f(a,5);
	f(b,6);
	f(c,100);


	return 0;
}
*/
//_____________________________________________________________________________________
void f(int *p,int len)
{
	p[3] = 88;
	printf("%#X,%d\n",&p[3],p[3]); //0X19FF38,88
}

int main(void)
{

	int a[5] = {1,2,3,4,5};
	printf("%#X,%d\n",&a[3],a[3]); //0X19FF38,4
	f(a,6);
	printf("%#X,%d\n",&a[3],a[3]);	//0X19FF38,88


	return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • int **a[3][4] 和 size

    BS的《C++编程》里面讲得很清楚,变量的申明,变量名称的后面部分比前面部分具有更强的约束力。

    py3study
  • python3 在不同操作系统安装第三方

    最近在看python3 ,有很多功能需要安装第三方库 不同的操作系统安装方法经常出现错误, 于是自己慢慢研究了不同操作系统的安装办法 用psutil模块做个例子...

    py3study
  • python pymyssql模块安装

    #./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib  --...

    py3study
  • 小朋友学C语言(20):数组

    一、数组简介 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 数组的...

    海天一树
  • 一个插排引发的设计思想 (三) 委托与事件

    FlyLolo
  • LeetCode 1443. 收集树上所有苹果的最少时间(自底向上DFS)

    给你一棵有 n 个节点的无向树,节点编号为 0 到 n-1 ,它们中有一些节点有苹果。 通过树上的一条边,需要花费 1 秒钟。 你从 节点 0 出发,请你返...

    Michael阿明
  • Google第二代深度学习系统TensorFlow开源(PPT下载)

    用户1737318
  • 共识算法解读:泛化的中本聪共识PHANTOM

    比特币运行了十几年都非常的安全,但是饱守诟病的问题就是它的吞吐量太低了,这也是由它的安全模型即最长链规则决定的。最长链规则要求所有的诚实节点能迅速接收到新创建的...

    Tiny熊
  • 交换排序—冒泡排序(Bubble Sort)

    在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们...

    瑾诺学长
  • 打造一流编辑器vimplus

    首先,已经安装过vim的需要检查是否开启了python解释器,vim --version | grep python,如果显示python前面是-号而不是+号,...

    昊楠Hacking

扫码关注云+社区

领取腾讯云代金券