【C Prime Plus】学习笔记,Chapter 10,数组和指针之二

C++ Prime Plus(第6版) 第4章 学习笔记 存储多个同类型值 在内存中连续type name{size}; 阅读详情

 

 

// C Prime Plus, Page 656
/*
  int marbles[10];
  如果要计算这个数组所有元素的和,函数的可能调用形式如下:
  int total = sum(marbles)
  数组名 marbles是它的第一个元素的 地址,而地址(指针)是个整型数(int)
  也就是说形参marbles实际是传递了个地址,因此可以用个int *p 指针来构造函数原型:
  所以相应的函数原型如下:
  int sum(int *ar) 
  本来是求数组的和,居然是可以用指针来表达.

*/

   int sum(int *ar)
   {
     int i;
  int total=0;
  for(i=0;i<10;i++)
  total+=*(ar+i) ; // *(ar+i)实际是取地址对应的值,然后把地址偏移一个单元,即必须是一块连续的内存.
  // 或者 total+=ar[i],这样直接把指针变量写成了数组,但是不便于理解
  // ar[i] is the same as *(ar+i)

  //--
      return total;

   }


 

如果把10也作为参数传递进去:

 

 

 int sum(int *ar,int n)
   {
     int i;
	 int total=0;
	 for(i=0;i<n;i++)
		total+=ar[i] ; // ar[i] is the same as *(ar+i) ,但是对刚刚学C人来说不好理解.一个指针形参直接当做数组来使用了.

  //--
      return total;

   }


 

/* 
     从函数原型的语境上,显然 可以用 int ar[] 替代 int *ar,也就是函数原型可以是这样的:
     int sum(int ar[],int n);
      所以 int *ar 和 int ar[] 在本例中是等同的
      但是,很显然从语法上讲, int *ar 表示为指向int类型变量的指针 即 pointer-to-int
	  而 int ar[] 则表示为int类型的数组,它只有在作为形参的时候,才表示为指向int
	   类型变量的指针,即pointer-to-int 


        在数组作为参数的申明中,以下4种形式是等价的(函数原型的申明中,是可以省略参数名称的)
		int sum(int *ar,int n);
		int sum(int *,int);
		int sum(int ar[],int n);
		int sum(int [],int);
	   */


 

深入学习C语言与C++基础:《C Prime Plus Sixth Edition》精读指南 C语言是一种广泛使用的计算机编程语言,它以其高效性和灵活性而著称,特别适合用于系统编程和硬件操作。它是许多现代编程语言的基础,包括C++和Objective-C。C语言的标准由ANSI于1989年制定,后续由国际标准化组织(ISO)在1990年正式采纳。函数是C语言中实现代码模块化的基本单位,它允许程序员将任务分解成独立的代码块,每块执行特定的功能。函数的定义包括返回类型、函数名、参数列表以及函数体。返回类型 函数名(参数类型 参数名, ...) {// 函数体。 阅读详情

相关推荐

C++ Prime学习笔记

学习C++ Prime的学习笔记, 快速检索知识点.

【C++笔记】《C++ Primer Plus》学习笔记——操作符重载(一)

《C++ Primer Plus》学习笔记——操作符重载 操作符重载简介 C++允许将操作符重载扩展到用户定义的类型,例如,允许使用+实现两个对象“相加”。举一个具体一点的例子:两个数组的相加通常需要以下的for循环语句来实现: for(int i = 0; i 10; i ++) sum[i] = a[i] + b[i]; //逐个逐个元素相加 如果定义一个表示数组的类,并

... 1047

C++ Prime Plus个人学习笔记

自己学习C++ Prime Plus书籍时整理好的学习文档资料,感觉自己的提升很大,分享给每一个学习C++的程序员们,希望能帮到你们

C++ Primer Plus学习笔记--开始学习(二)

进入C++ C++对大小写敏感,比如:将cout替换成Cout或COUT,都无法通过编译。 C++程序包括的元素: 注释: 由前缀//标识 预处理器编译指令#include 函数头: int main() 编译指令:using namespace 函数体:用{}括起 使用C++的cout工具显示消息的语句 结束main()函数的return语句 main() int main()...

平步青云的博客 5405

win11下的MySQL安装

目前官方最新版本是8.0.26,考虑到其稳定性、可靠性还需一定周期保证,所以使用官方版求稳定仍然建议5.7系列。3、选择MySQL Servers 5.7.38 -x64,然后按绿色箭头将选中的版本移植到右边选中框中。4、点击下方蓝色Advanced Options,选择安装位置。1、在开始界面搜索MySQL,点击command line。4、在“系统变量”中选择“path”,点击编辑。5、新建——>增加MySQL路径——>确定,12、execute,安装好后next。9、不需要做修改,直接点击next。.

rensweet的博客 2万+

避坑指南:华为2288H-V5服务器安装系统时常见的RAID与驱动问题解决方案

本文针对华为2288H-V5服务器在安装系统时常见的RAID与驱动问题,提供了详细的避坑指南。文章深度解析了从BIOS版本兼容性核查、RAID配置实战到驱动加载与集成的全流程,重点解决了安装过程中因RAID控制器驱动缺失或兼容性问题导致的硬盘无法识别等典型故障,帮助用户高效完成系统部署。

weixin_29240711的博客 979

C++ Primer Plus学习笔记

C++的表达式求值顺序并没有定义,比如 i=1, r= (i++)+ i*2  ,i++先运算还是i*2先运算是不确定的,取决于编译器,即r的结果可能为5(i++先运算的情况下),也可能为3(i*2先运算)。   ++i相当于   int ppi(int &amp; i) {     i = i + 1;     return i; }       i++相当于   i...

Buuuuu_____的博客 1371

CVPR2023新作HAT实战:5分钟搞定图像超分辨率重建(附代码)

本文介绍了CVPR2023新作HAT模型在图像超分辨率重建中的实战应用。HAT通过创新的混合注意力机制,显著提升了图像重建质量,能激活更多有效像素并减少伪影。文章提供了从环境配置到模型部署的完整指南,帮助开发者在5分钟内快速实现图像超分辨率重建,并附有代码示例和性能优化技巧。

weixin_29062613的博客 237

【C Prime Plus】学习笔记,Chapter 10,数组和指针之一

// C Prime Plus Page 651 // Listing 10.8 #include #define SIZE 4 int main(void) { short dates[SIZE]; short * pti; short index; double bills[SIZE]; double *ptf; pti = dates; ptf

-----------------------------不要在跟自己无关的事情上浪费时间 1296

第八篇 永磁同步电机控制-MTPA、MTPV

MTPA 的全称是 Maximum Torque Per Ampere,即 最大转矩电流比控制。核心思想:在输出特定转矩时,通过控制定子电流的幅值和相位(即d轴和q轴电流的分量),使得所需要的定子电流幅值最小。通俗理解:就是用“最省电”的方式产生所需要的力矩。就像开车时,找到一个最合适的油门和档位配合,使得在输出相同动力时,油耗最低。

深耕汽车电子:AUTOSAR、电机控制,助力数字汽车 1870

CANoe之UDS诊断自动化测试(四):创建诊断自定义Panel发送诊断(替代Session Control窗口)

通过自定义的Panel界面实现诊断发送的功能,并且还可以根据自己的测试需求添加需要的诊断信息,使用非常灵活。

weixin_69677286的博客 1904

【C Prime Plus】学习笔记,Chapter 10,数组和指针之四

// 指针操作:使用指针作为参数 page 661 #include #define SIZE 10 int sump(int *start,int *end); int main(void) { int marbles[SIZE]={20,10,5,39,4,16,19,26,31,20}; long answer; // 数组是int,求和防止出界,用long an

-----------------------------不要在跟自己无关的事情上浪费时间 958

Windows 下 Claude Code 使用全记录:从零到一的保姆级图文教程(持续更新)

本文主要介绍了Windows 下 Claude Code 使用全记录:从零到一的保姆级图文教程,希望能对学习使用 Claude Code 的同学们有所帮助。 文章目录 1. 背景 2. 实战教程(2026年最新教程) 2.1 步骤一 Claude Code 环境准备 2.2 步骤二 配置Claude Code 2.3 步骤三 对话 3. 老版本实战教程 3.1 步骤一 配置Node.js 3.2 步骤二 Claude Code配置 3.3 步骤三 配置Claude Code 3.4 步骤四 对话

weixin_43178406的博客 15万+

【C Prime Plus】学习笔记,Chapter 10,数组和指针之三

#include #define SIZE 10 int sum(int [],int); int main(void) { int marbles[SIZE]={20,10,5,39,4,16,19,26,31,20}; long answer; answer = sum(marbles,SIZE); printf("the total number of marbles

-----------------------------不要在跟自己无关的事情上浪费时间 910

PCL 从LAS文件中获取点云的颜色【2026最新版】

PCL从LAS文件中获取点云的RGB信息(pcl::PointXYZRGB)并进行可视化。博客长期更新,本文最新更新时间为:2026年5月4日。

点云侠的博客 1720

电子科技大学计算机预推免(最终去向)

电子科技大学,预推免报名时必须要有一封本校老师写的推荐信,推荐信基本上就是复试的入场券,所以一定要提前联系老师,拿到推荐信。只要有机会进了面试,我觉得老师对于双非并不歧视,面试的个人表现才是关键性决定因素,技巧性也是很强的,如果有需要帮助的,欢迎私信~~

D1379951481的博客 3367

【C Prime Plus】学习笔记,Chapter 10,数组和指针之五

// 【C Prime Plus】学习笔记,Chapter 10,数组和指针之五 // 指针的赋值,加减运算 // Page 667 #include int main(void) { int *ptr0,*ptr1,*ptr2; // 如果指针没有初始化,进行 ++ 运算,编译会warning使用了没有初始化的指针,但是不是严重错误 //ptr

-----------------------------不要在跟自己无关的事情上浪费时间 899

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

整理:C primer plus 学习笔记

前言:简单看了一遍C Primer Plus, 整理了一下,因为时间比较少,自己理解地比较肤浅,所以第一版比较简陋。 假期的时候应该会有时间再整理一下。------2018/11/5 2019/1/23 寒假整理一下笔记。 2019/3/7 大二下学期记:这本书内容还是很多的,举例比较多,也涉及了一些C语言的”高级“特性,有些地方难度很高,但是即使没能掌握也并不影响使用C语言。感觉想用笔记来...

一只大鸽子的博客 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C primer plus 学习笔记 第10章 数组和指针

第10章 数组和指针 10.1 数组 数组由数据类型相同的一系列元素组成。使用数组时,通过声明数组告诉编译器数组中含有多少元素和这些元素的类型。 下面是几个数组声明: float candy[365]; char code[12]; 10.1.1 初始化数组 使用{}来初始化数组: int powers[3] = {1,2,4}; tip:使用const前缀声明数...

一只大鸽子的博客 1791

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

《C Prime Plus》读书笔记(10):数组和数组指针

文章目录数组的初始化数组指针数组指针与数组下标的关系 数组的初始化 当数组为静态变量时(块作用域、外部链接、内部链接的静态变量),数组默认初始化为0 当数组为自动变量时,数组的初始化方式: 已知数组大小完全初始化和部分初始化 自动匹配数组大小初始化 #include<stdio.h> int arr1[5]; // 默认初始化 static int arr2[5]; // 默认初始化 int main(){ static int arr3[5] // 默认初始化 /*不可默

fang 0 jun的博客 211

【C Prime Plus】学习笔记,Chapter 10,数组初始化问题

// 【C Prime Plus】学习笔记,Chapter 10, P631 #include int main(void) { int i; char arr[4]; printf("局部变量没有初始化,看看打印出来是什么\n"); for(i=0;i<4;i++) printf("%d\n",arr[i]); printf("局部变量仅仅初始

-----------------------------不要在跟自己无关的事情上浪费时间 911

c prime plus 学习重点知识(数组与指针)

数组地址 我们举一个变相使用指针的例子:数组名是数组首元素的地址。也就是说,如果flizny是一个数组,下面的语句成立: flizny = &flizny[0]; //数组名是该数组首元素的地址 flizny和&flizny[0] 都表示数组首元素的内存地址(&是地址运算符)。两者都是常量,在程序的运行过程中,不会改变。但是,可以把它们赋值给指针变量,然后可以修改指针变量的值。 地址存储 首先看下下面这段代码: #include<stdio.h> #define n 3

qq_35082781的博客 565

c primer plus 指针与多维数组探究

C primer plusP266,指针和多维数组,zippo1_yql20170628.c程序,主要代码如下 int a=1;     long long b=2; int zippo[4][2] = { {2,4}, {6,8}, {1,3}, {5, 7} }; int (*pz)[2];       printf("   zippo = %p,    zippo + 1 = %

legendyql的博客 603

C和C++ Prime Plus 学习资源:一站式编程学习解决方案

C和C++ Prime Plus 学习资源:一站式编程学习解决方案 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在编程学习的道路上,找到一套合适的学习资源至关重要。C和C++ Prime Plus 学习资源为您提供了一套全面的编程学习解决方案,涵盖C语言和C++语言的基础到高级知识。项目内含丰富的源码资源,辅助您深入理解《C Prime Plus》和《C++ Pri...

gitblog_06704的博客 845

C Prime Plus 第6章习题

P170~P176

weixin_45641816的博客 1079

C和C++ Prime Plus 学习资源

C和C++ Prime Plus 学习资源 去发现同类优质开源项目:https://gitcode.com/ 感谢您访问本仓库,这里提供了《C Prime Plus》和《C++ Prime Plus》两本书的章节源码资源,旨在帮助学习者和开发者更好地理解和掌握C语言和C++语言的编程技巧。 资源简介 本资源文件包含以下内容: C Prime Plus:涵盖了C语言的入门到进阶知识,包括基础语法、...

gitblog_06796的博客 386
上一篇: 【C Prime Plus】学习笔记,Chapter 10,数组和指针之一
下一篇: 【C Prime Plus】学习笔记,Chapter 10,数组和指针之三
sergery
博客等级 码龄18年 113粉丝 136原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值