自定义函数(c)
flag[]数组各个元素的值为0或者1,如何使得前n个元素都为0?(对数组[]与指针数组*的处理一直感到困惑)
{:10_286:} PS :*a与a[]有区别吗 本帖最后由 jackz007 于 2022-10-16 16:06 编辑
int a = {1 , 2 , 3}// * a 就是 *(a + 0) 就是 a,*(a + 2) 就是 a 自己把他们的值都打印出来不就知道了?
int a = {{1 , 2 , 3} ,
{4 , 5 , 6} ,
{7 , 8 , 9}} ; // * (* a) = *(*(a + 0) + 0) = a,*(*(a + 1) + 2) = a
jackz007 发表于 2022-10-16 15:33
int a = {1 , 2 , 3}// * a 就是 *(a + 0) 就是 a,*(a + 2) 就是 a 自己把他们的值都 ...
谢谢,那请问没区别的话为什么要用*a和a[]来描述同一件事情? * a 通常是指针的表达,而 a[] 是数组的表达,两种表达只是可以达到相同的效果而已,没有必要纠结,自己擅长哪一种表达就是用哪一种好了。 jackz007 发表于 2022-10-16 16:05
* a 通常是指针的表达,而 a[] 是数组的表达,两种表达只是可以达到相同的效果而已,没有必要纠结, ...
那么如果我想把flag里所有元素传入min函数
而且我在min函数外面需要得到flag处理后的值
min(flag)
这样输入数组对吗
本帖最后由 jackz007 于 2022-10-16 16:38 编辑
萨西摩尔·槿花 发表于 2022-10-16 16:32
那么如果我想把flag里所有元素传入min函数
而且我在min函数外面需要得到flag处理后的值
是的。需要注意的是,被作为参数传入函数的所有数据本身在完成调用的时候,都会遭到丢弃,但是,作为指针传入函数,函数修改的指针所指内存单元的数据,所以,在退出函数后,被修改的数据依然会存在。 jackz007 发表于 2022-10-16 16:35
是的。需要注意的是,被作为参数传入函数的所有数据本身在完成调用的时候,都会遭到丢弃,但 ...
感谢{:10_257:} 本帖最后由 howzyao 于 2022-10-22 03:01 编辑
萨西摩尔·槿花 发表于 2022-10-16 15:59
谢谢,那请问没区别的话为什么要用*a和a[]来描述同一件事情?
如果非要讲区别,需要看实际举例:
*a
代表一个地址,地址实际进入函数后,修改地址中存放的值,函数结束,地址抛弃,但地址的值,还在。
b[ ]
代表一组 同类型的变量 叫做数组,它的第1个元素的地址: b 就正是用 *b来表示,所以,可以看做一样使用的道理在这里。但请考虑:b 当它要入参时,怎么写?此时,区别的特性就出来
我想,这就是为何要表达为
*a 和 a[ ]
的2种方式的一种灵活性设计吧。 howzyao 发表于 2022-10-22 02:52
如果非要讲区别,需要看实际举例:
*a
代表一个地址,地址实际进入函数后,修改地址中存放的值,函数 ...
感谢{:10_275:}
页:
[1]