参数和指针
创始人
2024-12-14 06:34:34
0

函数的设计应该遵从什么原则?

答:我们说函数就是一种封装的方法,函数的设计应该遵从“一个函数仅实现一个功能”的原则,这样子我们就可以实现化繁为简的目标,将一个复杂的程序给拆解开来,变成一个个独立的功能,每个功能我们就用一个函数来实现。

“形参和实参,只是放在不同位置的同一个变量。”,这种说法正确吗?

答:不正确。它们是不同的两个变量,只是函数在调用的过程中,发生了类似“形参 = 实参”的赋值操作。

void 类型的函数能否使用 return 语句返回?

答:可以。

解析:在有返回值的函数中,return 语句的作用通常是返回函数的执行结果,并结束当前函数,让 CPU 回到调用它的位置;在没有返回值的函数中也可以使用 return 语句,例如当检查到一个错误的时候提前结束函数并返回。

下面是 strcpy 函数的原型(参考文档请戳:传送门),请问为何第二个参数要使用 const 修饰?

char *strcpy(char *dest, const char *src);

答:dest(Destination)参数指向用于存放字符串的目标数组,src(Source)参数指向待拷贝的源字符串。dest 参数是 char * 类型,而 src 参数是 const char * 类型,说明dest 所指向的内存空间在函数中是可以改写的,而 src 所指向的内存空间在函数中只能读不能写。

请问下面这两个函数的定义等价吗?

func(int a[], int n)
{
        ……
}

func{int *a, int n}
{
        ……
}

答:以上两种写法是等价的。因为函数不存在传递(拷贝)整个数组的情况,当用数组名做实参时,传递的实际上是数组第一个元素的地址。因此,形参是一个指向数组元素类型的指针。

请问下面代码中,变量 a 和变量 b 的值打印出来分别是多少?为什么?

#include

void get_array(int b[10]);

void get_array(int b[10])
{
        int i;

        printf("sizeof b: %d\n", sizeof(b));
}

int main()
{
        int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

        printf("sizeof a: %d\n", sizeof(a));
        get_array(a);

        return 0;
}

答:事实上这是课堂中的一段演示代码,不过我怕你没认真听课漏掉了这一关键的知识点,所以再问了一次。好吧,打印的值应该是 40 和 4(在小甲鱼的编译环境中,一个整型变量占 4 个字节的内存空间)。

为什么会这样的?

来,我们敲黑板划重点:并不存在将整个数组作为参数传递的方式,传递的实际上是指向这个数组的第一个元素的地址而已。

请问下面代码会打印什么?

#include

void func(int b[][3]);

void func(int b[][3])
{
        printf("%d\n", b[2][2]);
}

int main(void)
{
        int a[3][4] = {
                {1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12}
        };

        func(a);

        return 0;
}

答:9。

相关内容

热门资讯

技术分享“方片十三张外挂”hh... 您好:方片十三张外挂这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...
教程辅助“新超圣伏虎”真的有挂... 教程辅助“新超圣伏虎”真的有挂开挂辅助安装必备教程;打开点击测试直接进入微信(136704302)看...
透视免费“衢州都莱破解器”hh... 透视免费“衢州都莱破解器”hhpoker辅助靠谱吗(带开挂辅助工具攻略教程!);无需打开直接搜索薇:...
教程辅助“方片十三张透视脚本”... 方片十三张透视脚本 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由: ...
玩家攻略推荐“新玄龙辅助”wp... 玩家攻略推荐“新玄龙辅助”wpk透视辅助方法(带开挂辅助神器必备教程)《详细加薇136704302咨...
教程辅助“衢州都莱破解器”有挂... 教程辅助“衢州都莱破解器”有挂分析开挂辅助平台AI教程>>您好:软件加薇136704302中联系客服...
玩家必备科普“蜀渝牌乐汇辅助”... 玩家必备科普“蜀渝牌乐汇辅助”德普之星透视辅助软件激活码(带开挂辅助脚本攻略教程!)>>您好:软件加...
教程辅助“江西中至黑科技辅助软... 教程辅助“江西中至黑科技辅助软件”有挂辅助开挂辅助安装曝光教程您好:江西中至黑科技辅助软件这款游戏可...
普及知识“大唐游戏辅助器”哈糖... 大家好,今天小编来为大家解答哈糖大菠萝可以开挂吗这个问题咨询软件客服可以免费测试直接加微信(1367...
教程辅助“友间十三张辅助器”有... 教程辅助“友间十三张辅助器”有挂猫腻开挂辅助器实用技巧 >>您好:软件加薇136704302信确实是...