C语言指针实例

C语言指针与数组编程实例 本文包含多个C语言编程实例,涵盖成绩统计、矩阵判断、指针操作等内容。重点演示了数组频率统计、上/下三角矩阵检测、指针读取与值交换、以及利用指针实现循环和条件计算的方法,适合巩固基础编程与指针应用能力。 阅读详情

记录一些平常可能用到的指针例子

#include<stdio.h>

int main()
{
//------------------------------------- No.1
	char array[4] = "a01";
	
//------------------------------------- No.2
	char array1[3][4] = {"a01","a02","a03"},
		 array2[3][4] = {"b01","b02","b03"},
		 array3[3][4] = {"c01","c02","c03"};
	char *array4[4] = {"a01","a02","a03","a04"};		//定义了一个数组,包含4个char型指针(每个指针初始化一块静态内存) 【指针数组】 

//------------------------------------- No.3
	char array5[2][3][4] = {
						   {"a01","a02","a03"},
						   {"b01","b02","b03"}
						  };
	char *array6[3][4] = {							//定义了一个 3x4的矩阵,每个元素都是 char 型指针 
						 {"a01","a02","a03","a04"},
						 {"b01","b02","b03","b04"},
						 {"c01","c02","c03","c04"} 
						};
//------------------------------------- No.4
	char *p1=NULL,*p2=NULL,*p3=NULL,*p4=NULL;
	char **array7[4] = {&p1,&p2,&p3,&p4};
	char **array8[2][2] = {
						  {&p1,&p2},
						  {&p3,&p4}
						 };	
	
//------------------------------------- No.1
	puts(array);
	char *p;
	p = array;
	puts(p);			// a01
	p++;				// 指针p的步长为 1 
	puts(p);			// 01 

//------------------------------------- No.2	
	puts(array1[0]);		// a01	
	char (*p)[4];		//定义了一个 char型数组(长度为4)的指针  【数组指针】 
	p = array1;		
	puts(p[0]);			// a01
	p++;				// 指针p的步长为 4 
	puts(*p); 			// a02 		
	
	char *p;
	p = array1[1];
	puts(p);
//-----------------
	char (*p[3])[4];	//定义了三个 char 型数组(长度为4)的指针 / 定义了 char 型数组(长度为4)的指针的数组  【数组指针数组】 
	p[0] = array1;
	p[1] = array2;
	p[2] = array3;
	puts(p[1][2]);		// b03
//-----------------
	puts(array4[1]);		// a02
	char **p;			// char 型指针的指针 
	p = array4;
	puts(p[1]);			// a02
	p += 3;				// 指针p的步长为 4
	puts(*p);			// a04

//------------------------------------- No.3
	puts(array5[0][1]);	// a02	 
	char (*p)[3][4];	// char 型二维数组(3x4)的指针 
	p = array5;
	puts(p[0][0]);		// a01
	p++;
	puts((*p)[1]);		// b02
//	(*p)++;				// 错误,p是变量,可以进行赋值运算,而 (*p)是地址值,不可进行赋值运算 
	puts(*((*p)+2));	// b03
	
//-----------------	
	puts(array6[2][3]);	// c04
	char *(*p)[4];		// char型数组(长度为4)的指针的指针  【数组指针指针】 
	p = array6;
	puts(p[1][2]);		// b03

//------------------------------------- No.4
	char ***p;
	p = array7;
//-----------------	
	char **(*p)[2];
	p = array8;

	return 0;
}


[C语言实例:利用指针输出字符串]——从零开始学习C语言指针 指针的定义方式为:指针类型 * 指针名称。例如,本例中的指针定义为char *p。指针的值是一个地址,因此在初始化时需要使用&运算符获取变量的地址(但是数组名本身就代表数组的首地址,因此不需要使用&)。例如,本例中的指针初始化为p=str。这个程序首先定义了一个字符串数组str,然后定义了一个指向char类型的指针p,并把它初始化为str的首地址。C语言的指针是一种非常重要的数据类型,也是初学者最容易混淆和理解不清楚的概念之一。总之,掌握指针的概念和使用方法是C语言编程的重要基础。来访问指针所指向的变量。 阅读详情

相关推荐

CY7C68013 C0模式启动

C0或是C2启动的目的,是更改USB芯片的ID信息,并把固件载入到芯片内部RAM中运行。C0模式是指只从EEPROM中载入USB ID信息,因为只有ID信息(8个字节),所以只需要一个小容量的EEPROM即可。当然大容量的EEPROM也可以使用C0模式,但是小容量的EEPROM只能使用C0模式启动。如下图所示: 使用小容量的EEPROM要将A0,A1,A2接地。 这里我用了个24LC01,容量1

Fezl的博客 1740

C语言经典案例——第五章 指针(上)

本篇提供了关于C语言程序设计中函数部分的经典案例,可供C语言的初学者们进行一个学习和编译练习。 /*Case 1 爸爸在哪儿 晚餐时间,妈妈做好了美味的晚餐,去楼上叫爸爸和宝宝吃饭,到了卧室,发现只有宝宝,妈妈想:“爸爸在哪?”。 妈妈先让宝宝下楼去餐桌旁,然后走到书房,在书房找到正在看书的爸爸。 假设将宝宝和爸爸视为变量,书房和卧室视为存储空间,请编程求出他们在内存中的位置*/ int main() { int father = 1; //定义...

qq_65192671的博客 6398

【密码学】生成8位26个字母和数字的全排列(密码字典,密钥)c++代码(非递归高效直接)

生成8位26个字母和数字的全排列(密钥)代码(非递归高效直接) 用C语言或C++,生成一个8位的26个字母和数字的全排列的原代码,例如从:00000000到ZZZZZZZZ。 说明:生成的这个字典会非常大,有36^8条记录,估计要3T的硬盘,跑一个晚上看看         这个方法比递归更高效,更直接。                                                ...

Wu_Being 的优快云 博客 1万+

关于c语言指针的应用实例

时,首先发现array存的是数组a的地址,于是系统会去寻找数组a所在的位置,由于array[0]表示偏移0位,正好代表这元素1的位置,于是便将1赋给力变量max再通过在进入for循环后遍历array的偏移情况。然后相信大家也可以看出,值传递的方式十分浪费资源,当我们需要传输较大的数据时,我们要重新在内存中开辟一个与传输数据一样大的空间,再进行数据的复制,费时且费力,因此下面进行介绍地址传递(指针传递)可以看到,在值传递过程中,即使我们更改了子函数中参数的值,依然不影响主函数中的数据,较为安全。

weixin_62805747的博客 749

克里金插值(Kriging)在MATLAB中的实现(克里金工具箱)

一,直接献上克里金插值MATLAB工具箱 链接:https://pan.baidu.com/s/1p0lt2G8KQ-els7Dyw5jPFg 提取码:wcss 下载后将该程序添加到MATLAB安装文件夹中的/toolbox下,然后在设置路径中添加该程序文件为默认路径即可调用程序。 资源中内附程序使用说明PDF。 二、本人实际操作代码如下所示,标注如下 load data1 %载入数据 %模型参...

qq_40937675的博客 6万+

从内参矩阵到归一化平面:揭秘相机成像的标准化核心

本文深入解析了相机成像中的核心概念——归一化平面。通过拆解内参矩阵(包含焦距、主点等参数)的作用,详细阐述了如何将像素坐标转换为与具体相机硬件无关的归一化坐标。这一标准化过程是计算机视觉算法(如多相机系统对齐、视觉SLAM)实现跨设备通用性的关键,能有效提升算法的鲁棒性和泛化能力。

opencv7vision的博客 450

C语言——指针详细介绍及代码实例

指针是C语言的核心概念之一,也是初学者容易感到困惑的知识点。它直接操作内存地址,赋予程序高效灵活的内存管理能力,但使用不当也可能引发严重问题。本文将介绍指针的基本用法、常见场景及注意事项。指针是一种存储内存地址的变量。其核心功能是通过地址间接访问数据,而非直接操作数据本身。每个变量在内存中占据一块空间,指针保存的是这块空间的起始地址。如数组,其指针往往指向数组首元素的地址。通过指针可以读写对应地址的数据。指针是C语言的精髓,提供了直接操作内存的能力,但也伴随较高风险。高效性。

2301_81377948的博客 1230

AFSim 2.9实战指南:从入门到精通的中文教程

本文是AFSim 2.9的实战指南,提供从零开始的中文教程。内容涵盖仿真环境搭建、实体行为控制、脚本编写,到传感器、武器系统集成与复杂想定构建,最后讲解数据记录与结果分析方法,帮助用户快速掌握这一强大的军事仿真框架。

weixin_29281941的博客 948

【C语言 | 指针】C指针详解(经典,非常详细)

👉本文介绍了指针的四个要素:指针所在的内存地址、指针的值、指针的类型、指针所指向的类型。指针常用运算符,指针表达式,指针运算等内容。

wkd_007的博客 2333

U24时钟信号上升下降沿出现非单调性--简单分析

交换机U24时钟信号上升下降沿出现非单调性--简单分析

qq_45185504的博客 1132

菲涅尔波带片

菲涅尔波带片的简介,以及matlab绘制

Bestchinese的博客 1万+

指针应用实例

记住:指针不难,只是需要练习。就像学骑自行车,一开始可能会摔倒,但一旦掌握,就能自由驰骋。五、实战项目4:智能家居控制系统。绝招3:函数指针(让函数更灵活)绝招4:回调函数(让程序更智能)三、实战项目2:迷你音乐播放器。四、实战项目3:简单文件管理器。二、实战项目1:智能温控系统。九、总结:指针应用的三个层次。· 复杂数据结构(链表、树)一、开胃小菜:三个魔法瞬间。层次1:基础应用(小学生)层次2:中级应用(中学生)层次3:高级应用(大学生)魔法1:一键切换日夜模式。测试1:你能找出错误吗?

Alfadi联盟 萧瑶的博客 460

OpenClaw 运行时错误文档:Embedded Run Agent End with Stream Error(嵌入式运行代理结束流式错误)

OpenClaw运行时错误文档:EmbeddedRunAgentEndwithStreamError(OC-ERR-009) 该错误表示LLM提供商在流式传输过程中发生服务器端异常(HTTP 500),属于可恢复的中等严重性错误。典型表现为日志中出现包含"stream_error"和500状态码的错误信息。系统会自动进行错误分类(50%为服务过载,25%网络问题等),并通过内置机制尝试解决:包括模型切换、API密钥轮换和自动重试策略。用户可采取重试请求、切换模型或简化请求内容等操作,管理

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 554

C语言指针运用实例

C语言指针运用实例 都说指针是C语言的精髓,学了C语言还不懂指针用法的人就根本没有掌握C语言的精华。但C语言的指针却有些复杂,如果你会问指针的类型是什么?指针指的类型是什么?该指针指向了哪里?等概念方面的问题,请参看《深入理解C语言指针的奥秘(实例)》一文。那里对概念的理解比

1496

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

c语言二级指针有什么作用,C语言中二级指针的实例详解

C语言中二级指针的实例详解C语言中二级指针的实例详解用图说明示例代码:#include int main(int argc, const char * argv[]){//int a = 5;int *p1 = &a;//-打印地址-----地址相同---------------printf("&a = %p\n", &a);//printf("p1 = %p\n", p1...

weixin_39682560的博客 197

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

c语言指针程序实例,C语言指针应用简单实例

C语言指针应用简单实例这次来说交换函数的实现:1、#include #include void swap(int x,int y){int temp;temp = x;x = y;y = temp;}int main(){int a = 10,b = 20;printf("交换前:\n a = %d,b = %d\n",a,b);swap(a,b);printf("交换后:\n a = %d,b ...

weixin_39678163的博客 372

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C语言指针入门,图解+实例

1.指针是什么 指针是内存中一个最小的单元编号,也就是地址 通常我们口中说的指针其实是指针变量:变量中存放着地址 那么地址,内存,指针又有怎样的关系? 为了对内存更方便的管理使用,我们把内存划分为一个一个小格子 一个内存单元是1个字节 为了很好的定位到内存单元,我们给每个单元一个编号,这个编号也就是地址 指针变量就是存放我们需要的地址,方便我们需要时直接使用 如何去创建指针变量,并且存放地址呢? int a=0; int* p=&a;//此处*代表创建的是指针变

sun的博客 3875

c语言指针大全,C语言指针的经典实例讲解

指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。先声明几个指针放着做例子:例一:(1)int*ptr;(2)char*ptr;(3)int**ptr;(4)int(*ptr)[3];(5)int*(*ptr)[4];指针的类型从...

weixin_42513365的博客 840

用c语言编写一个二级指针,C语言中二级指针的实例详解

搜索热词C语言中二级指针的实例详解用图说明示例代码:#include int main(int argc,const char * argv[]){//int a = 5;int *p1 = &a;//-打印地址-----地址相同---------------printf("&a = %p\n",&a);//printf("p1 = %p\n",p1);//int **p2...

weixin_33955307的博客 226

c语言指针运用实例,C语言指针运用实例

都说指针是C语言的精髓,学了C语言还不懂指针用法的人就根本没有掌握C语言的精华。但C语言的指针却有些复杂,如果你会问指针的类型是什么?指针指的类型是什么?该指针指向了哪里?等概念方面的问题,请参看《深入理解C语言指针的奥秘(实例)》一文。那里对概念的理解比较透彻,基本上所有概念都会清楚了。下面先看看这段程序代码吧:/******* C语言指针测试 pointtest.c 开始***********...

weixin_42412396的博客 450

c语言指针典例,C语言指针实例

{if(mystrcmp(*(pt+i),*(pt+j)) > 0){tmp = *(pt+i);*(pt+i) = *(pt+j);*(pt+j) = tmp;}}}}void print(char **p,char n){int i;for(i = 0;i < n;i++){printf("%s \n",*p++);}}void main(){char *name = "\"Fo...

weixin_36102010的博客 269

c语言二级指针的作用,C语言中二级指针的实例详解

C语言中二级指针的实例详解用图说明示例代码:#include int main(int argc,const char * argv[]){//int a = 5;int *p1 = &a;//-打印地址-----地址相同---------------printf("&a = %p\n",&a);//printf("p1 = %p\n",p1);//int **p2 = &...

weixin_39851977的博客 149

c语言指针的作业,C语言指针入门的简单实例教程

c语言的指针的存在使得c语言对硬件的操控,以及灵活性得到了极大的提高。但是指针的使用存在着很多难点问题。#include#include//这里的函数是指针做参数的例子,要知道这个特性可以弥补c语言只能有一个返回值的特性。void swap1(int *pa,int *pb){int t =*pa;*pa=*pb;*pb=t;}//main()函数必须要返回一个数字int main(){int a...

weixin_36315079的博客 269

c语言指针数组程序实例,C语言实例讲解之指向数组的指针

如果您对 C 语言中指针的概念有所了解,那么就可以开始本章的学习。数组名是一个指向数组中第一个元素的常量指针。因此,在下面的声明中:double balance[50];balance是一个指向 &balance[0] 的指针,即数组 balance 的第一个元素的地址。因此,下面的程序片段把p赋值为balance的第一个元素的地址:double *p;double balanc...

weixin_32089639的博客 408

指向函数的指针使用实例(C语言实现)

指向函数的指针使用实例(C语言实现) /作为小白的我第一次写博客,异常激动,会很认真地写了。 我学习C语言一学期,喜欢分享和交流。/ 函数由指令序列构成,其代码存储在一片连续的内存单元中,第一个代码所在的内存地址即为首地址,就是函数的入口地址。主函数在调用时,就是转移到子函数的入口地址去执行。 那么指针指向函数,就是指针的值为函数入口地址。注意区分它和指针函数的区别。 格式为: 类型 (*指针变...

kk__w的博客 2755

C语言指针数组的用法详解(附带实例)

第二个 printf() 语句中,parr+i 表示第 i 个元素的地址,*(parr+i) 表示获取第 i 个元素的值(该元素是一个指针),**(parr+i) 表示获取第 i 个元素指向的数据。arr 是一个指针数组,它包含了 3 个元素,每个元素都是一个指针,在定义 arr 的同时,我们使用变量 a、b、c 的地址对它进行了初始化,这和普通数组是多么地类似。需要注意的是,字符数组 str 中存放的是字符串的首地址,不是字符串本身,字符串本身位于其他的内存区域,和字符数组是分开的。

zdoeo的博客 514
上一篇: 串口发送不同类型数据方法
下一篇: 串口DMA方式发送&接收
且听风吟0618
博客等级 码龄11年 150粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值