数组和指针

1.数组名指向的是一块来自栈上的区域,而指针指向的通常是动态分配内存的堆上的区域,数组名是一个指针常量,不能被修改

char*test2()
{
    char p[] = "hello world";
    return p;
}
这时不能返回p,它是局部变量,在栈区上
 
void test3(){
    char str[10];
    str++;//数组名是一个指针常量,不能被修改
    *str='0';
}
 
2.内容的修改比较
以下代码中用数组可以修改值,而用指针修改则会发生运行时错误。原因在于,数组是将字符串常量复制到自己的内存区域,而指针指向的是字符串常量的地址,p[0]将会是修改常量区中的数据,这是不被允许的。

char a[] = “hello”;

a[0] = ‘X’;

cout << a << endl;

char *p = “world”;     // 注意p指向常量字符串

p[0] = ‘X’;             // 编译器不能发现该错误

cout << p << endl;

 
3.内容的复制的比较
 数组:不能用“=”进行对数组的复制,只能用strcpy进行复制。不能用“==”来做比较,只能够用strcmp来进行比较
 指针:和数组一样用的是strcpy来复制以及strcmp来比较。用“=”是对指针赋于地址,用“==”是比较地址

 // 数组…

    char a[] = "hello";

    char b[10];

    strcpy(b, a);           // 不能用   b = a;

    if(strcmp(b, a) == 0)   // 不能用  if (b == a)

    // 指针…

    int len = strlen(a);

    char *p = (char *)malloc(sizeof(char)*(len+1));

    strcpy(p,a);            // 不要用 p = a;

    if(strcmp(p, a) == 0)   // 不要用 if (p == a)

3 计算内存容量
指针通常sizeof后是4,数组则不同,例如a[]="aaab",这时sizeof(a)为5,还计算了‘\0'的大小。
注意:数组作为函数的参数进行传递时,该数组自动退化为同类型的指针

转载于:https://www.cnblogs.com/upup-2015/p/5044474.html

内容概要:本研究聚焦于“绿电直连型电氢氨园区”的优化运行,提出一种直接利用绿色电力驱动制氢与合成氨的综合能源系统架构。通过构建包含风/光发电、电解水制氢、氢气储存、合成氨反应及电能直供等关键环节的系统模型,研究旨在实现能源的高效转化与梯级利用,降低对外部电网依赖,提升园区能源自洽率与经济性。研究综合运用Matlab与Python工具进行建模与仿真,结合实际气象与负荷数据,对系统在不同工况下的运行策略、能量流动、设备容量配置及经济技术指标进行深入分析与优化,并形成完整的Word论文文档,为新型零碳产业园区的规划与建设提供了理论依据技术支撑。; 适合人群:具备新能源、电力系统、化工或综合能源系统背景的科研人员,以及从事园区规划、能源管理、低碳技术开发的工程技术人员。; 使用场景及目标:①研究绿电如何高效耦合至化工生产流程,实现“电-氢-氨”多能互补;②掌握综合能源系统(IES)的建模、仿真与优化方法,特别是多时间尺度下的运行调度策略;③为撰写高水平学术论文或完成相关课题研究积累数据、代码与写作模板。; 阅读建议:此资源包含代码、数据完整论文,建议使用者先通读Word论文以理解整体框架与理论基础,再结合Matlab/Python代码进行复现与调试,最后可基于提供的数据模型进行二次开发,以深化对绿电综合利用技术的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值