重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
c 语言函数 形参 列表 中 可以是普通变量 或指针变量,不允许 加取址符。
我们提供的服务有:成都网站设计、成都网站制作、微信公众号开发、网站优化、网站认证、宛城ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的宛城网站制作公司
c++ 语言函数 形参 列表 中 加取址符 的参数 叫 “引用”,c 不支持。
------
函数 调用 的实参 类型 要与 形参对应,只有 形参 为 指针变量 的 实参 才可以是 地址。
void f(int x, int *y){};
int a,b;
int *p;
p=a;
调用
可以是 f(b,a);
可以是 f(b,p);
不可以是 f(b,a);
不可以是 f(b,a);
不可以是 f(b,a);
不可以是 f(b,p);
不可以是 f(b,p);
不可以是 f(b,p);
(但愿回答不被封。)
调用函数时查看函数申明
比如
int a(int *)
由于是int *型的输入数据,表示一个存了int型变量的地址
所以就要用取地址符了
C语言的数据基本类型分为字符型、整型、长整型以及浮点型,取值范围如下:
c语言中关于变量的取值范围的计算方法:
1、使用函数的返回值。将函数计算出的变量作为返回值返回给其它函数使用。
2、使用函数的参数。将函数参数设置为引用传递而不是值传递,就可以把函数计算出的变量通过此参数给其它函数使用。
3、使用全局变量。将函数计算出的值保存到全局变量中,其它函数就可以使用了。
扩展资料
C语言运算中的数据类型自动转换原则
1、隐式转换
C语言在以下四种情况下会进行隐式转换:
(1)算术运算式中,低类型能够转换为高类型。
(2)赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给它。
(3)函数调用中参数传递时,系统隐式地将实参转换为形参的类型后,赋给形参。
(4)函数有返回值时,系统将隐式地将返回表达式类型转换为返回值类型,赋值给调用函数。
2、算数运算的隐式转换
算数运算中,首先有如下类型转换规则:
(1)字符必须先转换为整数(C语言规定字符类型数据和整型数据之间可以通用)。
(2)short型转换为int型(同属于整型)。
(3)float型数据在运算时一律转换为双精度(double)型,以提高运算精度(同属于实型)。
其次,有下面的规则。
当不同类型的数据进行操作时,应当首先将其转换成相同的数据类型,然后进行操作,转换规则是由低级向高级转换。
就是找到这个变量的内存地址,直接读写
例如:scanf("%d",a);
就是找到a的地址,把读入一个数写到a 的地址中
在例如
p=a;
就是让指针p指向a的内存地址,这样直接对内存读写.有利于提高操作速度.
操作符是地址运算,获得变量的存储地址;而*则是间接访问操作符,与指针一起使用,用于访问指针所指向的值,也就是说通过地址访问地址处所存储的变量。
举个例子:
有变量a
=
8,存储在地址0xFFA0处。
a,表示a存储的地址,为0xFFA0,
*(指向a的指针),表示a的值=8,这里括号内的“指向a的指针”其数值等于0xFFA0。
void
fun(char
*p);
//这里的形式参数p是一个指针,所以你要传进来的是个指针变量,也就是地址
void
main(void)
{
char
a=8;
fun(a);
//所以这里你需要计算出地址,然后传给p
}
你可以这样理解,fun()调用时相当于
char
*p=a;
void
main(void)
{
char
a
=
8;
char
*pa;
pa
=
a;
fun(pa);
}
这与上面的表达是等价的。