C语言数组赋值运算解析:理解数组名与指针常量的区别

创始人
2024-12-18 14:55:08
0 次浏览
0 评论

C语言不允许用赋值运算符对数组整体进行赋值。这句话怎么理解呀,是一个判断题。

正确的数组是多个元素的集合,数组名是记录数组首地址的指针常量,在赋值时,C编译器会认为需要修改数组名来记录地址。
值,这是不允许的。

在C语言中,数组名可以做加法和减法吗?

在C语言中,数组名是一个不可变的指针常量,不能对其进行加减赋值操作。

在C语言中,数组名是一个变量标识符,代表数组的首地址,符合标识符书写约定。
不能对其进行加法、减法和赋值运算。
整个数组是从第一个地址开始的连续内存单元。
如果有一个字符串charc[10],设数组c的首地址为2000,也就是说单元c[0]的地址为2000。
那么数组c的名字就代表了这个首地址。

扩展信息:

组元素是组成组的基本单位。
数组元素也是变量,由数组名称后跟下标来标识。
下标表示数组中元素的序号。
数组元素的一般形式为:数组名[签名]其中签名只能是整型常量或整型表达式。
组名的书写规则必须与标识符的书写规则一致。
数组名不能与其他变量名相同。

如果是小数,C编译器会自动四舍五入。
例如a[5]、a[i+j]、a[i++]都是合法集合的元素。
数组元素通常也称为签名变量。
在使用有符号变量之前必须定义数组。
在C语言中,下标变量一次只能使用一个,并且不能一次引用整个数组。

在C语言中,数组a[5],数组名a可以a++吗

没有。
由于变量指针可以递增,但数组不能递增,因此可以将数组视为指针常量。
代码修改:

#include

intmain(void)

intarray[5]={2,4,5,23,5};

int*p,i;

p=array;

printf("请输入五位数字:\n");

for(i=0;i<5>

scanf("%d",&array[i]);

printf("\n");

printf("输出五个数字:\n");

//for(i=0;i<5>

printf("%d\n",*(p++));

}

信息范围:

指针算术

1.指针变量加/减整数

例如:p++、p--、p+i等。

C语言和C++语言规定,指针变量加减一个整数,就是将指针变量的原始值(即地址)与指针变量内存单元的字节数相加被它指向的变量占用。
或者减去。
这确保了p+i指向p下面的第i个元素。

2.指针变量赋值

C语言和C++语言规定可以将变量或函数的输入地址赋值给对应的指针变量。

例如(假设p是对应的指针):

p=&a;

p=max;(max是一个定义的函数)

3.指针变量减法

如果两个指针变量指向同一个数组元素,则两个指针变量的差就是两个指针的差。
元素数量。

注意,添加指针变量没有实际意义。

4.比较指针变量

如果两个指针变量指向同一个数组中的元素,则可以比较它们。
指向前一个元素的指针变量小于指向后一个元素的指针变量。

参考资料:

百度百科-指针运算

热门文章
1
Java代码实现:判断三角形类型及绘制倒... JAVA编程:根据用户输入的三角形的三个边长,判断三角形是不是直角三角形?pac...

2
Python编程:三种方法比较并输出三个... python比较三个数大小Python比较了以下三个数字的伟大:如果不同的写作,...

3
JavaScript字符串截取方法汇总与... JS截取指定字符串到指定字符串之间的内容结论:JavaScript中的对应方法可...

4
C语言位运算符详解: >>=... C语言中“>>=,<<=,&=,^=,|=”分别...

5
揭秘前端与后端:技术差异与协作关系 前端开发与后端开发的关系是怎样的简而言之,前端的前端是您看的所有东西,这是前端。...

6
Python模块实战:随机列表生成、排序... python中编写一个模块,模块中包含随机生成N个元素的列表、排序列表、求最大以...

7
SQL查询中WHERE与HAVING的区... sql语句中where和having的区别在SQL查询中,有两个关键字用于过滤数...

8
C语言实现正整数各位数字逆序输出及整数大... c语言:&#65532; 输入一个正整数,按从低到高顺序依次输出其各位数...

9
JavaScript ES6模板字符串详... js中模板字符串的使用模板字符串已添加到ES6 中,从而使文本操作更加灵活并解决...

10
C语言while循环深入解析及用法详解 c语言while用法 c语言while用法是什么1 在C中使用语言的使用分析如下...