c语言数组的地址传递,c语言函数传递数组_c语言函数数组地址传递没有输出
最佳答案
数组只能通过指针传递,不能通过值传递。
数组参数属于指针参数,指针参数即时传址参数(或叫引用参数), 如果想在函数中修改参数的值, 这是唯一的途径.
如果把数组当作参数, 不管愿意与否, 它就是指针, 指向第一个值的指针.
1. 数组参数就是指向第一个元素的指针: #include
void getArr(int p[], int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
getArr(ns, sizeof(ns)/sizeof(ns[0]));
getchar();
return 0;
}
void getArr(int p[], int si) {
int i;
for (i = 0; i < si; i++) {
printf("%d\n", p[i]);
}
}
2. 干脆直接声明为指针: #include
void getArr(int *p, int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
getArr(ns, sizeof(ns)/sizeof(ns[0]));
getchar();
return 0;
}
void getArr(int *p, int si) {
int i;
for (i = 0; i < si; i++) {
printf("%d\n", p[i]);
}
}
3. 即使你在形参中指定维数也不起作用: #include
void getArr(int p[2], int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
getArr(ns, sizeof(ns)/sizeof(ns[0]));
getchar();
return 0;
}
void getArr(int p[2], int si) {
int i;
for (i = 0; i < si; i++) {
printf("%d\n", p[i]);
}
}
4. 既然是指针, 其值就有被修改的可能: #include
void getArr(int p[], int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
size_t i;
getArr(ns, sizeof(ns)/sizeof(ns[0]));
for (i = 0; i < sizeof(ns)/sizeof(ns[0]); i++) {
printf("%d\n", *(ns+i));
}
getchar();
return 0;
}
void getArr(int p[], int si) {
int i;
for (i = 0; i < si; i++) {
p[i]++;
}
}
5. 如果是字符数组, 它自己能判断数组尾界: #include
void getArr(char p[]);
int main(void)
{
char ns[] = "ABCDEFG";
getArr(ns);
getchar();
return 0;
}
void getArr(char p[]) {
int i;
for (i = 0; p[i]; i++) {
printf("%c: %d\n", p[i], p[i]);
}
}
最佳答案由网友 夺命薯条 提供
c语言数组的地址传递,c语言函数传递数组_c语言函数数组地址传递没有输出相关推荐
- c语言prime函数怎么用_C语言入门——第六周笔记——数组运算
周围太安静了,安静到现在就算有一根针掉地上也能听到清脆的一声响. 我抬头看了看大哥,大哥,生气了. --纹路 数组运算 数组运算 数组的集成初始化 int 这次对数组的赋值很上次有明显的不同,这次并没 ...
- c语言string函数的用法_C语言基础| 指针和函数
点击蓝字关注我们 指针和函数 栈帧:当函数被调用时,系统会在stack空间上申请一块内存,用来给函数提供空间,存储形参和局部变量(定义在函数内部的变量). 当函数调用结束时,这块内存空间会被自动释放( ...
- C进阶_C语言_函数与指针_C语言指针进阶
上一篇博客http://t.csdn.cn/GYCiM 我们了解了指针相关知识,今天来了解函数和指针的关系. 目录 函数指针 函数指针数组 指向函数指针数组的指针 回调函数 qsort 冒泡排序模拟实 ...
- c语言prime函数怎么用_C语言教程_v20201106
编程基础 1.1 通俗地理解什么是编程语言 1.2 C语言究竟是一门怎样的语言? 1.6 初中毕业能学会编程吗? 1.7 C和C++到底有什么关系? 1.8 学了 C 语 ...
- c语言作业参考文献,c语言外文参考文献_数学类的文献 外文翻译_c 语言与面向对象的设计 习题及参考解答...
第1章 C语言程序设计概述(1) 1.1 程序设计基础知识(2) 1.2 C语言的历史沿革及特点(9) 1.3 C语言源程序的组成.书写规则与风格(11) 1.4 C语言的字符集.标识符与关键字(15 ...
- java跨函数跳转_C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧...
1.方法一 要对绝对地址0x100000赋值,我们可以用 (unsigned int * ) 0x100000 = 1234; 那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做? ...
- c语言程序 中断函数示例,单片机_C语言函数_中断函数(中断服务程序)
c语言中的中断函数注意事项 单片机_C语言函数_中断函数(中断服务程序) 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统. 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该 ...
- 密码学实验报告c语言程序,密码学_实验一_古典密码算法_C语言.doc
您所在位置:网站首页 > 海量文档  > 高等教育 > 实验设计 密码学_实验一_古典密码算法_C语言.doc8页 本 ...
- c语言排列组合的函数,c语言排列组合算法 排列和组合算法的实现方法_C语言经典案例...
想了解排列和组合算法的实现方法_C语言经典案例的相关内容吗,在本文为您仔细讲解c语言排列组合算法的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:c语言排列组合算法,下面大家一起来学习吧. ...
- C语言课程设计学生籍贯信息,学生籍贯信息记录簿_C语言课程设计.doc
学生籍贯信息记录簿_C语言课程设计 程序设计 课程设计报告 课题名称: 学生籍贯信息记录簿 专业 计算机科学与技术(软件工程)学生姓名 班级学号指导教师完成日期 一 课程设计的目的---------- ...
最新文章
- Linux Shell特殊字符和控制字符大全
- 设计素材|C4D别高质量模型包
- mysql更改执行计划_11g中 connect by 语句执行计划改变
- 淺談auto_ptr
- 茶饮门店如何通过企业微信做好用户运营
- 平板电脑刷机加供电系统改造
- PPT中放射发散型的文字效果设计技巧
- 文件解密 [Java]
- 10个提升效率的编程好习惯
- 即将30岁的2020年总结,放眼未来的未雨绸缪
- 2021年中国企业风险投资发展现状及未来发展趋势分析[图]
- 用LSTM做文本情感分类(以英文为例)附github代码
- 2023最新苹果CMS10仿电影先生网站自适应源码/UI简约大气极速加载
- C语言10道入门题集
- 华为U-SYS系统力助运营商实施转型
- 阿里云周晶:基于融合与协同的边缘云原生体系实践
- 「补课」进行时:设计模式(5)——从 LOL 中学习代理模式
- 查找并输出数组中出现频率最高的数字
- 条码打印软件如何连接激光打印机打印条码标签
- css表格宽度设置无效