c里面的数组尽量不要去做函数调用运算等操作

数组运算 对于Excel中的数组,我在最开始接触的时候觉得很难,理解不了它的原理。虽然会用数组写出来,但是很多时候完全不理解为什么要那样写。后来我看了一些资料,然后重复听老师讲课,最后慢慢理解了。到现在也有几个月的时间没有再看,但是最近做了一些有关数组方面的例题,发现很多以前无法理解的问题,现在豁然开朗。可能是过了一段时间再去看,忽然就理解了很多以前无法理解的问题。那下面我主要介绍一些我自己理解的数组之间的... 阅读详情
#include <stdio.h>

void gt(char**s)
{
 (**s) ='b';
}

void ff(char* s)
{

  *s = 1;
}

 int main()
{
  char arr[3] = {0};
  char* b = arr;
  gt(&b);
 //gt(arr)   //语法错误 二级指针 
 ///gt(&arr)  这行会爆段错误 
arr是一个数组名,在编译后是一个字符常量。不能对其进行取地址操作或赋值操作.
ff(arr);

当数组名作为参数传给函数调用的时候,会退化为指针。 但是如果是二级指针类型。就不行了。原因是什么呢?
如代码 如果是gt(&b) 那么在里面*s可以赋值。因为变量b的内存已经分配了 可以写。 但是arr不是一个变量是一个常量字符串。不能被修改。
就像char* s="abc"; abc字符串存在于常量字符串区,该区域是只读的。在程序运行后。

更准确的原因是&数组名的地址和数组的值是一样的 都指向了数组的开始地方。

  printf("%s\n", arr);
  return 0;
}



C语言指针引用数组 前言:C语言中指针玩的是什么,是内存,要想学好指针的小伙伴们要先对数据在内存中是怎么玩的做一番了解~       当在程序中定义一个变量时,系统会根据其数据类型为其开辟内存空间,例如Visual C++为整型变量分配四个字节的空间,为单精度浮点型变量分配四个字节,为字符型变量分配一个字节,内存中每个字节都有自己独立且唯一的一个编号,这就是地址 ,如下图,系统为变量i分配了2000~2004的存储单元。   _访问变量的方式_有如下图. 阅读详情

相关推荐

【MATLAB】数组运算

(这里这列举笔者不熟悉的,容易忘的数组运算)1、数组的转置&gt;&gt; a=[1 2 3 4 5 6 7] a = 1 2 3 4 5 6 7 &gt;&gt; b=a' b = 1 2 3 4 5 6 72、对数组的赋值&gt;&gt; a([1 4])=...

( :3 ) 1万+

C语言关于外部函数(有参数数组)调用后,主函数数组未变化的原因

啊,我太蠢了,debug了半天,找了很久原因,最后才被点醒。学C语言过去两年了,老师上课讲的忘得也差不多了,今晚简直是个啊美妙的夜晚。 回到正题,问题大概就是外部函数可以打印数组b[],但主函数打印不成功,debug显示的是无法访问memory。 先说原因:因为编译器会优先编译定义的变量,这样主函数中的b[]就得不到他应该有的值,因为size必须得file函数调用后才有意义。 再说结论:将size...

pc1532217526的博客 1526

c语言字节数组怎么定义,《C语言》—— 数组详解

数组的基本概念我们把一组数据的集合称为 数组(Array) ,它所包含的每一个数据叫做 数组元素 (Element),所包含的数据的个数称为 数组长度 (Length),数组中的每个元素都有一个序号,这个序号从0开始,而不是从我们熟悉的1开始,称为 下标 (Index),所包含数组的里面元素的类型叫做 数组类型 (Type)。一句话就说清楚了数组的基本概念,就是这么简单,_。数组底层结构探析1in...

weixin_29958373的博客 4043

[C程序设计]第六章 利用数组处理批量数据

1.用筛选法求100之内的素数.#include&lt;stdio.h&gt; int main() { for(int i=1;i&lt;=100;i++) { if(i==1) printf("%d\n",i); if(i&gt;1) { int result=0; for(int j=2;j&lt;=i/2;j++) if(i%j==0) ...

Daisy_fight的博客 1075

宇树机器人丝滑的二人转动作背后,MPC到底是什么?

了解MPC,让我们闻“机”起舞。

Barok的博客 2144

Nginx国密HTTPS实战:SM2双证书部署与TongSuo编译指南

HTTPS作为保障网络通信安全的基石,其核心在于SSL/TLS协议与公钥基础设施(PKI)。它通过非对称加密实现身份认证与密钥交换,再结合对称加密确保数据传输的机密性与完整性。在金融、政务等对自主可控有严格要求的领域,采用符合国家密码管理局标准的国密算法(SM2/SM3/SM4)替代国际通用算法(如RSA/SHA-256/AES),已成为满足安全合规要求的关键技术路径。国密SSL不仅是一套算法替换,更涉及从底层密码库到上层应用服务的完整技术栈改造。其核心价值在于实现密码技术的自主可控,提升特定场景下的安全防

weixin_29323365的博客 498

指针、数组运算及函数调用

引子:数据在内存中是如何存储的,又是如何读取的?内存编号就是内存的地址(内存中每个字节都有一个编号,即地址)1.概念:地址:内部存储器的编号,称为地址。如变量int a的位置编号,变量char b的位置都是指针。指针变量:专门存放地址的变量称为指针变量。地址、指针、指针变量都称为指针。一、变量的地址(指针)和指向变量的地址变量(指针)1.概念:变量的指针: 就是变量的地址。指针变量: 是用来存放地...

WANGZHEN 1666

OLED的字模提取(保姆级)---基于PCtoLCD2013

做为一个刚刚开始接触编程不久的白菜,这个OLED想做一个信息显示,可是商家给我的例程里就是88,816两种字体的格式,我的屏幕是0.91寸的8*16的字体显示上感觉特别丢丢儿小,我就想整个大的,哎,只怪直接学习习惯不好,总是学一半,绕了好大一圈,才搞好,想写一篇博客,时刻提醒踏实学习,第一次写博客,小白一枚,勿喷。。 OLED屏幕驱动程序功能 我们对Markdown编辑器进行了一些功能拓展与语法支...

qq_44886611的博客 7781

【C语言】带你回顾C语言全部运算符(详解)

​ 🌞🌞想要学好C语言,操作符是非常重要且必不可少的一部分内容,操作符分为算数运算符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用,函数调用和结构成员操作符的基本特性每个操作符都有自己的语义每个操作符都有对应的优先级,如果两个操作符挨在一块,先执行优先级高的操作符,如果优先级相同,取决于他们的结合性。每个操作符都有结合性。操作符的结合性定义了操作符对操作数执行操作的顺序,例如:右结合性表示该操作符对其操作数从右向左执行操作。

qq_65596720的博客 1万+

Ardupilot姿态控制详解(完结篇)

本文主要是对过去写的一些APM中姿态控制流程及函数博文的汇总。 按照之前写的博文以及个人认为的学习顺序,给出APM姿态控制器的学习顺序如下: APM姿态旋转理论基础 Ardupilot姿态控制器 PID控制流程(整定后的P控制器) 详解APM的开方控制器sqrt_controller Ardupilot前馈及平滑函数input_euler_angle_roll_pitch_yaw解析 Ardupilot倾转分离函数thrust_heading_rotation_angles Ardupilot四元数姿态控制

moumde的博客 7024

航空大数据——项目资源汇总及开源(四)

ADS-B项目开源大礼包

cyc头发还挺多的博客 4983

C语言:指针的变量运算及数组指针

从运算结果可以看出:pa、pb、pc 每次加 1,它们的地址分别增加 4、8、1,正好是 int、double、char 类型的长度;减 2 时,地址分别减少 8、16、2,正好是 int、double、char 类型长度的 2 倍。这很奇怪,指针变量加减运算的结果跟数据类型的长度有关,而不是简单地加 1 或减 1,这是为什么呢?

Dola的博客 1643

Android 12 HAL开发避坑实录:手把手教你用AIDL在Native层实现一个可开机自启动的Service

本文详细介绍了在Android 12 HAL开发中,如何通过AIDL在Native层实现一个可开机自启动的Service。从环境准备、AIDL接口定义、服务实现到VINTF集成与SELinux策略配置,提供了完整的实战指南,帮助开发者避开常见陷阱,提升开发效率。

weixin_28314575的博客 321

C语言有关数组的运算

在开始之前,我们先来复习一下基础知识: sizeof是一个单目运算符,计算数据类型或变量长度(包括‘\0’); strlen(地址),以’\0’为结束标志计算字符串长度的函数(不包括’\0’); &amp;+数组名,数组名表示整个数组,这里取出的是整个数组的地址 ; sizeof(数组名),数组名表示整个数组,计算的是整个数组的大小,单位是字节 除了以上两种形式表示整个数组之外,其余情况当遇...

cherrydreamsover的博客 1万+

【5G核心网】Packet Forwarding Model 数据包转发模型

CP 通过建立,修改,删除 PFCP 会话上下文,以及通过为每个 PFCP 会话赏析哪问提供 PDR FAR QER URR BAR,来控制 UP 面的数据包处理。 每一个 PDR 都包含 PDI(Packet Detection Information,包探测信息),一个或多个字段,与输入数据包进行匹配,并可能与以下规则相关联,从而提供了适用于与 PDI 匹配的数据包的指令集: - One FAR(包含了处理数据包的相关指令) an Apply Act...

zhonglinzhang 1万+

JavaFx 教程

JavaFx 教程

2012年开始工作,全栈开发老兵,目前已是一个老师,分享这么多年的心得体会 784

【C语言】“指针的运算”、“指针与数组”

​ 我们知道指针存放的其实就是变量的地址,但实质上指针也是一个变量,那么就需要一个可以用来存储指针的变量,我们称它为二级指针。​ 指针还可以进行关系运算,但是标准规定:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。​ 我们看到数组名的地址与首元素的地址相等,那么数组名就是首元素的地址,这是在大多数情况,不过也有例外。指针数组是存放指针的数组,注意要和数组指针区分开,数组指针是指存放数组的指针。(2)当 &数组名 时。

qq_65596720的博客 6852

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C语言指针操作(三)通过指针引用数组

通过指针引用数组的几种方法的原理和差异;以及利用指针引用数组元素的技巧。一个数组包含若干元素,每个数组元素都占用存储单元,所以他们都有相应的地址,所谓数组元素的指针就是数组元素的地址。

伯努利 6118

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

matlab数组做运算,6.2 MATLAB数组的运算

1.数组的算术运算数组的运算是从数组的单个元素出发,针对每个元素进行的运算,在MATLAB中,一维数组的基本算术运算包括加、减、乘、左除、右除和乘方。数组的加减运算:通过格式A+B或A-B可以实现数组的加减运算。其中A和B的维数必须相同。数组的乘除运算:通过格式“.*”或者“./”可以实现数组的乘除运算,同样A,B的维数必须相同。乘法:数组A和B的维数相同,运算为数组相对应元素相乘,计算结果与A和...

weixin_35408656的博客 4696

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[C高手编程] 数组与指针:多维数组、动态数组、指针运算与字符串

本章深入探讨C语言中的数组与指针技术,包括多维数组的使用、动态数组的创建与管理、指针与数组的关系、指针运算、多级指针以及指针与字符串的交互。这些概念对于理解和编写高效安全的C语言程序至关重要。通过本章的学习,读者将能够理解这些概念的工作原理,并能在实际编程中正确地运用它们。定义:多维数组是一种由多个一维数组组成的数组。详细说明:多维数组通常用于表示具有多个维度的数据结构,例如表格、矩阵或图像。在C语言中,可以使用嵌套的一维数组来创建多维数组。例如,一个3x4的整数矩阵可以表示为。定义。

极客代码 1766

【C学习】13-数组使用与运算

数组是C语言中一种重要的构造数据类型,它允许我们将多个相同类型的变量组织在一起,形成一个有序的集合。通过使用一个统一的名称(数组名)和下标(索引)来管理这些数据。//<类型> 变量名称[元素数量];// 完全初始化// 部分初始化(未初始化的元素自动设为0)// 结果为:1, 2, 0, 0, 0// 自动确定数组大小// 编译器自动确定数组长度为3// C99指定的初始化器// 只初始化特定位置的元素定义一个整型数组:int arr[10];

c_QFy_17的博客 903

C语言指针操作(四)用数组名作函数参数

用数组名作函数参数的详解,以及形参实参采用数组名,形参实参采用指针变量的几种情况解析。实参数组名代表该数组首元素的地址,而形参是用来接收从实参传递过来的数组首元素地址的。因此,形参应该是一个指针变量(只有指针变量才能存放地址)。实际上,C编译都是将形参数组名作为指针变量来处理的。

伯努利 4923

C语言中的数组

到目前为止,我们见过的变量都只能存储单个数据项,这样的变量称为标量 (scalar)。C 语言也支持聚合变量,这类变量可以存储多个数据项。C 语言提供两种类型的聚合变量:数组和结构体。本章主要介绍数组。数组是含有多个数据项的数据结构,并且这些数据项都具有相同的数据类型。这些数据项称为数组的元素,我们可以根据元素在数组中的位置来选取元素。最简单的数组就是一维数组。数组元素在内存中是依次排列的,如下图所示:声明一个数组,我们需要指定数组元素的类型和数量。如: 数组元素可以是任何类型,数组的长度则必须是常量表达

caijirui_rui的博客 1020
上一篇: strdup,兼具malloc和strcpy的作用
下一篇: gch文件之浅谈GCC预编译头技术
RunBoying
博客等级 码龄17年 41粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值