C提高day02、day03

"本文讲解了如何在C++中使用#pragma once避免代码冗余,extern "C"的作用,指针操作的深入理解,包括地址传递、数组内存管理,以及extern声明和const指针的使用。还涉及跨文件引用和值传递区别,以及二维数组和指针数组的区别。"
摘要由CSDN通过智能技术生成

防止重复包含和嵌套包含

#pragma once

让C代码,可以在C++编译器编译运行

#ifdef __cplusplus        两个下划线

extern "C"{

#endif

XXXXX

#ifdef __cplusplus

}

#endif

int*,其中int=4Byte,表示其步长

通过指针做函数参数,实参前加&取地址符,间接赋值。用于赋值多个变量;单一变量时直接用函数返回值+赋值即可

同级别指针赋值,a=b,a指向b指向的地址

不指定数组大小,写几个字符元素,数组就多大,后面也没有\0

指定数组大小,没用到的字符元素都被赋值为0

        '\0'等价于0,不等于'0'

一般情况,不指定数组大小,后方用" ",而不是{' ',' '}

数组名是一个地址常量,确保最终内存可以被回收

编程习惯:1.若形参中有指针,判断其是否为NULL

2.函数执行成功返回0,执行失败返回非0

3.不要在子函数中直接使用形参,而是尽量使用辅助变量将其接过来。(胡乱移动形参会找不到“头”)

将指针赋初值为空,意思是它不指向任何内存空间

system("pause");        在控制台程序一闪而过时的解决办法

除了注释,也可以用条件编译,屏蔽一段代码

        #if 0

        #endif

(const char *p <—> char const *p。都是const修饰*p,指针指向的内存不能改变)

const char* p,指针指向的内存不能改变

char* const p(const修饰p),指针的指向不能改变

const char* const p,两者都不能改变

如何引用另外文件的中的变量?extern声明之后,就可以用了

值传递与地址传递:地址传递形参可以改变实参,而值传递却不行

二维数组的数组名,代表首行地址(第一行一维数组的地址),其步长为30

定义二维数组,不写第一个中括号,(a[][30]={“xx”,"xx};),必须要初始化(即后面接大括号)

首行地址和首元素地址的区别,他们的步长不同。首行地址的步长是第二个中括号的值,首元素地址的步长是1(char类型)

指针数组和二维数组的区别,是否拷贝。指针数组没拷贝,二维数组拷贝了

用子函数给主函数分配空间

        直接分配空间,需要高一级指针

        通过返回值分配空间,值传递,给形参开辟空间后,将形参返回值赋值给主函数中的实参

scanf读;printf写

s-printf;f-printf

考虑边界情况,即思考某参数等于0时会发生什么

if (i==0)
{
    return -2;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值