C语言中,一般的变量做参数与数组名做参数有什么区别?各位大虾请给解释下。

作者&投稿:凤天 (若有异议请与网页底部的电邮联系)
各位大虾,请问c#中可以定义寄存器变量吗?像C语言中的register一样。~

c#中确实没有这个东东,c#中的变量一般都是存储在内存中的(栈、托管堆)
但是C#支持将对象序列化(Serializable),序列化化后的对象不是存储在内存中,而是进行持久化保存(磁盘文件或数据库中)

#include
#include

void split(char **arr, char *str, const char *del) {
char *s = strtok(str, del);

while(s != NULL) {
*arr++ = s;
s = strtok(NULL, del);
}
}

int main() {
char *str = "abc,def";
char *arr[2];
const char *del = ",";
int i = 0;
split(arr, str, del);

while(i<2)
printf("%s
", *(arr+i++));
}

一般参数,调用时传递的是实参的值,形参是实参的一份拷贝。系统分配两次内存。
数组和指针参数,调用时传递的是实参的地址,访问和修改的是原数据,不做拷贝。系统只分配一次内存。

至少我知道,全局数组是heap分配,数组等同于指针。注意学学原理吧。

一般的变量传参数是传的值,是单向传递。
数组传的是地址,可以方便的实现双向传递。


C语言中,一般的变量做参数与数组名做参数有什么区别?各位大虾请给解释下...
一般参数,调用时传递的是实参的值,形参是实参的一份拷贝。系统分配两次内存。数组和指针参数,调用时传递的是实参的地址,访问和修改的是原数据,不做拷贝。系统只分配一次内存。

C语言中的函数的调用时,用一般的变量会有用RETURN,而用指针变量就没有...
用一般的变量相当于传值调用 (call by value), 必须用return 返回结果。

C语言中指针变量作为函数参数和一般变量作为函数参数的区别
一般变量作为形参,是不能改变实参值的哦,要返回数据就用return;指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了。调用就是用函数名,还要传送相应的调用参数。

C语言变量的基本类型有哪些?
c语言的变量有三种类型:char,int,float,double 其中char为字符类型的变量是八位的,最前一位作为符号位,后面七位作为数据位.它的存储范围在-128到127之间.int整数类型的变量是16位的,最前一位为符号位,后面的15位作为数据位.它的存储范围在-215到215-1.也就是-32768到32767.它不包扩小数点以后的...

c语言变量基本类型有哪些
c语言的变量有三种类型:char,int,float,double 其中char为字符类型的变量是八位的,最前一位作为符号位,后面七位作为数据位.它的存储范围在-128到127之间.int整数类型的变量是16位的,最前一位为符号位,后面的15位作为数据位.它的存储范围在-215到215-1.也就是-32768到32767.它不包扩小数点以后的...

C语言中,变量到底是个什么概念?
C语言中的变量是指在程序运行时其值可以改变的量,变量的功能就是存储数据。变量有三个基本要素:变量名:每一个变量都应该有一个名字。变量的数据类型:每一个变量都应具有一种数据类型(在定义时指定)内存中占据一定的储存空间 变量的值:变量对应的存贮空间中所存放的数。

c语言问题???
如果按存储占用空间来分,可以是整型变量,字符型变量,浮点型变量等.当然还有数组,结构体变量等. C语言还有一个重要变量:指针变量.它存放的值是一个内存地址.操作系统变量 C语言中变量名是有大小写之分的,如SUN与sun就是两个不同的变量名。 另一点,声明变量时,可以不用声明就直接赋值来决定变量类型的语言如(jav...

C语言中指针变量作为函数参数和一般变量作为函数参数的区别
在函数声明和定义时Fun(int p1,int p2)是不是表示它的参数是两个int型的整数。Fun(int* p1,int* p2)则使表示它的参数是两个指针类型的。定义和声明时的变量只是代替符,其它的运算符号与类型符号加起来才是参数类型。你如果觉得不好理解,那么在写的时候就把int 和*放在一起(int*),这就...

C语言中字符变量数值取值范围。
在C语言中一般char类型占1个字节,即8个二进制bit位,每1位有0或者1两种值,使用乘法原理,排列组合数为2^8 = 256种排列数。\\x0d\\x0a\\x0d\\x0a如果是无符号char类型,即unsigned char类型,可以表示【0,255】共256个无符号数。\\x0d\\x0a如果是有符号char类型,即signed char或者char类型...

c语言中,常量,变量,浮点,单精度,双精度是什么意思?举例
实型常量又称实数或浮点数。在C语言中可以用单精度型和双精度型两种形式表示实型常量,分别用类型名float和double进行定义。实型常量在一般的微型集中占用4个字节,一般形式或者指数形式,数值范围都是-1038~1038,有效数字是7位。浮点型数据又分为单精度型(float)和双精度型(double)两种。1、单(float...

荔城区19437601914: C语言中,一般的变量做参数与数组名做参数有什么区别?各位大虾请给解释下. -
东刘热炎: 一般参数,调用时传递的是实参的值,形参是实参的一份拷贝.系统分配两次内存.数组和指针参数,调用时传递的是实参的地址,访问和修改的是原数据,不做拷贝.系统只分配一次内存.

荔城区19437601914: c语言中数组元素做函数参数和数组名做函数参数有什么不同 -
东刘热炎: 数组名做函数参数会对该数组中元素修改,而用数组元素则不会对该数组有影响. 希望采纳

荔城区19437601914: 用普通变量做形参和市场与用数组名做实参有什么区别 -
东刘热炎: C语言中 数组名作为实参,数组名是一个指针,指向数组的第一个元素 为指针常量 用于初始化形参 数组名做形参 编译器会自动把数组名转化为指针 并忽略第一维数组长度 C语言中 都是传值调用 没用什么区别 即使指针也是

荔城区19437601914: C语言中数组名是auto变量吗 -
东刘热炎: 凡是未声明存储类别的局部变量,都视为auto变量. 一般数组名是指针常量,只有作形参的数组名才是指针变量.

荔城区19437601914: c语言中数组元素做函数参数和数组名做函数参数有什么不同求答案 -
东刘热炎: C语言中参数传递都是是值传递、单向传递,数组元素作为参数传递的是是该变量的值,而数组名作为参数传递的是该变量的地址.

荔城区19437601914: C语言中,用数组名作形参和用指针作形参有区别吗? -
东刘热炎: 还是有差别的 虽然大多数时候都可以相互用 最大的差别就是指针可以改变,可以通过指针改变指向内容的值,但数组名不行 举个例子:(分别作为形参) int num[10], *p; p = num;//此时p指向数组的第一个元素 我在主函数里调用两个函数 1 ...

荔城区19437601914: c语言中数组名作为函数参数 -
东刘热炎: 要将数组长度作为一个参数传给average函数,不能在average函数内部通过int arrLen = sizeof(a) / 4;来计算数组长度.因为float average(float a[10])就相当于float average(float *a) ,所以sizeof(a)恒等于4,sizeof(a) / 4恒等于1.应该这样:float average(float a[10],int arrLen) { float sumSco = 0; for (int i = 0; i < arrLen; i++) { sumSco += a[i]; } return sumSco / arrLen; }

荔城区19437601914: C语言 被调函数中一般变量和指针变量均作为形参,函数如何调用?函数值如何返回? -
东刘热炎: 一般变量作为形参,是不能改变实参值的哦,要返回数据就用return; 指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了. 调用就是用函数名,还要传送相应的调用参数.

荔城区19437601914: C语言中关于数组名作为函数参数方面的问题 -
东刘热炎: 不知道你说的第2,4,5语句对应的是什么....帮你解释为什么是1:1. 当你调用fun(a,b,s); 传进的参数实际上是:&a[0], &b[0], s变量的值(实际上也就是&a[0])2. 现在我们把fun的形参换个名字 fun(int *p1, int *p2, int *p3) 进入fun时 p3 = s ,即p...

荔城区19437601914: 在C语言中如何把变量赋给数组 -
东刘热炎: 一般来说需要循环, 字符串方式多一点,可以用scanf %s,可以用gets(),可以用strcpy,strcat等方式

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网