c语言中指针作函数参数 c 函数指针参数

c语言指针的指针做函数参数

定义sort函数时使用的参数是指针,需要注意的是这个指针是指向数组的,数组的名称其实就是一个指针,所以p可以做sort的参数

创新互联科技有限公司专业互联网基础服务商,为您提供成都服务器托管高防服务器租用,成都IDC机房托管,成都主机托管等互联网服务。

c语言结构指针作为函数参数

stu 直接声明的指针,空间没有分配。

可考虑改为:

#includestdio.h

struct date

{int year,month,day;}stu, *p_stu;

void print(struct date *stu);

void main()

{

p_stu = stu;

scanf("%d%d%d",p_stu-year,p_stu-month,p_stu-day);

print(p_stu);

}

void print(struct date *stu)

{

printf("birth is %dyear %dmonth %dday\n",stu-year,stu-month,stu-day);

}

C语言指针变量的赋值和做函数的参数

1、指针变量的赋值,分为定义时赋值(初始化)和单独赋值,如:

int x ;

int * px=x ; //定义时赋值,也称初始化,注意这里的*是跟随int的,即变量px是int *类型变量! 实际上的赋值语句是px=x ;

int * py ;

py=x ; //单独赋值,将py指向x

*py=10 ; //这里的*,是引用指针中的数据操作符,*跟随的变量必须是指针类型变量,否则会出错! *py就是x,这里相当于x=10;

2、指针变量作为函数的参数时,子函数可以通过指针引用实参地址中的数据,达到修改实参地址中的数据。如:

#include stdio.h

void func( int a, int b, int *pmax )

{

if ( ab ) *pmax=a;

else *pmax=b ;

}

void main()

{

int a=2,b=3,max=0;

func(a,b,max ); //这里将变量max的地址传递到子函数,子函数中通过该地址,可以修改max的值,达到子函数结束后,max能带回运算结果的效果。

printf("max=%d\n", max );

}

C语言中指针作为函数参数的问题。

没有任何错误啊!

p1,p2本来就是int*类型的,swap参数也是int*类型的, if(ab) swap(p1,p2);这一句没错啊!swap本来就需要指针变量,p1,p2正好又是指针变量,直接写上去就可以了!

swap() 中是 int *p1 和int *p2这是因为这是swap的定义,既然是定义就要声明参数的类型,这里声明的是int*类型,那使用的时候就要传递int*类型的。主函数里的类型也是int*,对应上了,就可以了。

在定义变量的时候,建议你把*和数据类型当做一个整体,看成一种新的数据类型,不要把*和变量看做一个整体。比如int* p,int*是一个数据类型,p是变量名。

C语言指针变量作函数参数问题 求大神帮忙

因为使用地址作参数,那么传参就是传地址啊,当然要传u_x即x啦

另外,对指针来说,定义的时候加*是为了区别指针变量与非指针变量,如果函数定义中的int *a,int *b的两个星号去掉,那就说明形参变量不是指针类型了。但指针在使用时,不需要再加星号,加星号就是星号运算,也就是访问对应的地址并取出里面的值了。所以调用函数时只需要传地址,不能加星号,加了星号那就是把这个地址的值取出来作实参了

用指针变量作为函数参数

#include stdio.h

void swap1(int x,int y),swap2(int *px,int *py),swap3(int *px,int *py);

int main(void)

{

int a=1,b=2;

int *pa=a,*pb=b;

swap1(a,b);

printf("s1:a=%d,b=%d\n",a,b);

a=1,b=2;

swap2(pa,pb);

printf("s2:a=%d,b=%d\n",a,b); a=1,b=2;

swap3(pa,pb);

printf("s3:a=%d,b=%d\n",a,b); return 0;

}

void swap1(int x,int y)

{

int t; t=x; x=y; y=t;

}

void swap2(int *px,int *py)

{

int t; t=*px; *px=*py; *py=t;

}

void swap3(int *px,int *py)

{

int *pt; pt=px; px=py; py=pt;

}

扩展资料

对象与类

对象(Object)

Visual Basic.NET 具有“面向对象”的特性,Visual Basic.NET 应用种程序的基本单元是对象,用 Visual Basic.NET 编程就是用“对象”组装程序。这种“面向对象”的编程方法与传统的全部用代码编制程序的方法有很大区别,就像用集成电路芯片组装电视机和用三极管,二极管组装电视机的区别一样。显然,“面向对象”的编程方法比传统的编程方法更简单,更方便,并且编写出的程序也更加稳定。因此,“对象”可以被看做 Visual Basic.NET 程序设计的核心。

在 Visual Basic.NET程序设计中,对象中还可以包含头,手,腿,脚等部位,其中的每个部位又可以单独作为作为被研究的对象。在 Visual Basic.NET程序设计中,整个应用程序就是一个对象,应用程序中又包含着窗体(Form),命令按钮(Command),菜单(Menu)等对象。

类(Class)

在 Visual Basic.NET中,对象是由类创建的,因此对象可以说是类的具体实例,这就好比是蛋糕和做蛋糕的模具之间的关系。

各种不同的对象分属于各种不同的种类。同一类对象可能具有一些不同的特征(或是说同一类对象不一定具有完全相同的特性);具有某些相同的特性的对象,不一定是同一类对象。

参考资料来源:百度百科-VB


本文名称:c语言中指针作函数参数 c 函数指针参数
当前URL:http://csdahua.cn/article/doccpdo.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流