‘壹’ 请问在c语言中,函数传参时怎样利用指针传递数组
数组名就是指针,例如:
#include <stdio.h>
voidpr(char *p)
{
printf(p);
}
void main(void)
{
char s[] = "abc";
pr(s);
}
(1)c语言传指针举例扩展阅读:
注意事项
非数组类的声明尽量以指针的方式进行比较好。倘若一个指针指向的内存并不是一个数组,那么采用数组名的声明方式或许就会给人产生错误的引导。类似的,如果指向的是一个数组区域,则会给人以更加丰富的信息。例如:
int main(int argc,char* argv[])
{
/* code here */
}
与
int main(int argc,char** argv)
{
/* code here */
}
两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而后面的这种方式则不能够直观地看出这种含义。
‘贰’ c语言的函数指针举个例子
函数指针 就是指向函数的指针
比如
voidpr_int(inta)//函数
{
printf("%d ",a);
}
voidfunc(void(*p)(int),intm)//函数指针做参数
{
p(m);//调用函数指针
}
intmain()
{
func(pr_int,100);
return0;
}
‘叁’ 关于C语言函数传递指针参数,帮我看看我的程序
你的地址值传递错误,按照我给你修改的试试看,一定要注意你的实参传递的是地址还是具体的值,如果是地址,在子函数中就不要去修改你传递进来的地址。
int
main(void)
{
int
data=0;
//此处随机分配内存空间,不要用指针
myStack=makeStack(myStack,top);
Push(myStack,3);
Push(myStack,8);
Push(myStack,19);
Push(myStack,31);
Push(myStack,43);
Push(myStack,36);
Pop(myStack,&data);//此处,传递的是地址值
printf("%d
",data);
}
int*
Pop(LinkedStack
myStack,int
*data)
{
pStack
cursor=myStack;
if(Stack_Empty())
{
}
else
{
while(cursor->next!=top)
{
cursor=cursor->next;
}
*data=top->data;
//此处,只是在同一个内存空间修改其值,所以不要取地址
top=cursor;
return
data;
}
}
‘肆’ c语言,指针函数的应用,能举个简单点的例子吗越简单越好啊
int
(*p)(参数表列)这个是定义一个指向函数的指针,返回值为整型。比如int
max(int
a,int
b)将max换成(*p)
即可,p里放的是max函数的入口地址,所以,此时的p做自加自减等运算无意义。不能用*(p+1)表示函数的下一条指令。
int
*p()是函数,此函数的返回值是个指向整型变量的指针变量。
***************************************************
以上是你需要的,下面是一些其它相关容易混淆的:
int
*p[n]:定义指针数组P,它由n个指向整型数据的指针元素组成。
int
(*p)[n]:P为指向含n个元素的一维数组的指针变量。
‘伍’ c语言的函数指针举个例子
返回指针函数的原型:类型名*函数名(参数列表);
如果按照你的vod * func(void) {}感觉不太对。既然有返回值(指针),怎么会是void呢。所以显示不对。
下面写了一个返回指针值的函数的例子。你可参考下:
#include<stdio.h>
char*func(void)
{
staticchara[20]="Hello,Clanguage.";
returna;
}
voidmain(void)
{
char*p;
p=func();
while(*p)
printf("%c",*p++);
printf(" ");
}
‘陆’ 论述C语言中指针的概念和作用,并举例说明
1、指针概念:变量的地址(计算机内存字节的编号)叫做指针,存放变量地址的变量叫指针变
量,
简言之,指针是用来存放地址的。
2、作用:指向这个变量或数组的首地址,是变量的间接引用方式。其值如果改变,变量的值或数组元素的值也会跟着改变。程序对变量的操作实际上是对变量所在的存储空间读取和写入数据。方便对变量的操作。
举例说明:
int
a=3;/*定义一个整型变量a,并赋初值3*/
int
*p;/*定义一个指针变量P*/
p=&a;/*让p指向a的首地址,也就是a的地址*/
程序为a分配一个2个字节的存储单元,假如2个字节的地址分别为(ABCD1和ABCD2,唯一),那么p里面放的值就是ABCD1,不是3。这时可通过p直接引用a,实际上*p=3。以后不管a存放在内存中的哪个地方,只用通过调用p就可以引用a。这时如果令*p=4,则最后的a值也为4。对于数组,指针是指向数组的首地址。
‘柒’ 关于C语言指针的简单的例子
p++就是每次把地址加一,那么你scanf()以后输入的内容放到的是地址增加的指针里面,这样就完成了自动*(p+i)=a[i]的过程。