当前位置: 首页 > news >正文

网站建设视频演示新闻发布会直播在哪里看

网站建设视频演示,新闻发布会直播在哪里看,运营推广网站建设,网站开发职业工资为什么这三种写法是等价的? 这三种写法是等价的,数组在作为函数参数的时候会变成指针,数组的大小会被系统编译器自动忽略 所以char *(argv[argc]) 等价于 char *(argv[]) *和[]是可以相互转换的所以char *(argv[])等价 char *(*a…

为什么这三种写法是等价的?

    这三种写法是等价的,数组在作为函数参数的时候会变成指针,数组的大小会被系统编译器自动忽略
所以char *(argv[argc]) 等价于 char *(argv[]) 
*和[]是可以相互转换的所以char *(argv[])等价 char *(*argv)作为命令行:这里我们需要的是一个指针数组,其实上面的理解都可以理解成一个指针数组,因为指针数组
与char型的二维数组好搭配
int *p[5] = {指针,指针,指针...} 变量的类型 int *[5]  数组的元素类型:int * --->指针
char *(argv[argc])    char *(argv[])   char *(*argv)
上面三种写法只有在作为函数参数的时候是等价的,如果是在函数内定义的那么它们就是不一样的
  1. char *(argv[argc])

    • 这种写法声明argv是一个数组,其大小为argc,每个元素是一个指向char的指针。

    • 在函数参数中,数组的大小argc实际上会被编译器忽略,因为数组作为参数传递时会退化为指针。

  2. char *(argv[])

    • 这种写法声明argv是一个数组,但没有指定数组的大小。

    • 在函数参数中,未指定大小的数组会被编译器视为一个指针。

  3. char **argv

    • 这种写法直接声明argv是一个指向char *的指针,即二级指针。

        在C语言中,当数组作为函数参数传递时,它会退化为指向其首元素的指针。这意味着,无论你如何声明数组参数(无论是指定大小还是不指定大小),编译器最终都会将其视为一个指针。因此,char *(argv[argc])char *(argv[])在语义上等价于char **argv

代码示例

以下是一个简单的示例,展示这三种声明方式的等价性:

#include <stdio.h>// 使用 char *(argv[argc])
void printArguments(int argc, char *(argv[argc])) {for (int i = 0; i < argc; i++) {printf("Argument %d: %s\n", i, argv[i]);}
}// 使用 char *(argv[])
void printArguments2(int argc, char *(argv[])) {for (int i = 0; i < argc; i++) {printf("Argument %d: %s\n", i, argv[i]);}
}// 使用 char **argv
void printArguments3(int argc, char **argv) {for (int i = 0; i < argc; i++) {printf("Argument %d: %s\n", i, argv[i]);}
}int main() {char *arguments[] = {"arg0", "arg1", "arg2"};int argCount = sizeof(arguments) / sizeof(arguments[0]);printArguments(argCount, arguments);printArguments2(argCount, arguments);printArguments3(argCount, arguments);return 0;
}

        在这段代码中,printArgumentsprintArguments2printArguments3三个函数的参数声明方式不同,但它们的功能和行为完全相同。

总结

  • 数组参数的退化:数组作为函数参数时会退化为指向其首元素的指针。
  • 解引用和下标操作的等价性:在C语言中,*(ptr + i)ptr[i]是等价的。
  • 数组大小在参数声明中被忽略:在函数参数中声明数组时,数组的大小会被编译器忽略。
http://www.dtcms.com/a/444294.html

相关文章:

  • 有网站前台如何做后台代运营公司哪里有
  • 2018年公司做网站注意事项长沙网红小吃
  • 做网站网站判刑多少年网站开发市场人员的招聘
  • 东阳网站优化兰州新站点seo代理
  • 娱乐企业网站建设濮阳房产网官网
  • 做网站策划需要用什么软件微网站的优缺点
  • dw网页设计代码案例网站seo属于什么专业
  • 自己的服务器做网站域名解析网页设计和网站开发
  • 班级网站html代码如何搭建网站赚钱
  • 三亚网站建设网站建设维护的相关基本知识
  • p2p网站建设要多少钱wordpress 自带相册
  • 用vs做网站界面百度搜索引擎介绍
  • 自建个人网站美食网站建设前的市场分析
  • 中国建设报社网站深圳做网站哪家便宜
  • 宝山网站建设制作做兼职什么网站
  • 电子商务网站建设阶段vps可以同时做ss和网站吗
  • 甘肃省住房和建设厅网站首页企业网站推广的方法有哪些
  • 天津专业的做网站与运营的公司更新不了wordpress
  • 企业网站建设的材料哪里有网页设计
  • 网站开发工程师发展趋势企业网站托管公司
  • 湛江市建设局官网站wordpress地址插件
  • at结尾网站vue和react可以做pc网站吗
  • 昆山网站推广推荐10个优秀的国外ui设计网站
  • 中铁中基建设集团网站网站自定义链接怎么做
  • 网站开发的后期支持网站开发多少钱一个月
  • 汉中微信网站建设推广wordpress缓存
  • 溧阳做网站价格网站后台登陆密码忘记
  • 有没有什么免费网站北京住房投资建设中心网站首
  • 有做兼职的网站吗wordpress不使用ip访问不了
  • 做的网站很卡是什么原因运用.net做网站