C语言中,数组名是一个不可变的指针常量,不能对它进行加、减和赋值运算。在C语言中规定,数组名是代表该数组的首地址且符合标识符书写规定的变量标识符。不能对它进行加、减和赋值运算。整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10],设数组c的首地址为2000,也就是说c...
宏定义的问题,可以用数组名吗? 只看楼主 收藏 回复 42岁学c语言 毛蛋 1 我写的这样的代码 #define a[1] 1 #define a[2] 2 #define a[3] 3 main() {int i; for (i=1;i<=3;i++) printf("%d",a[i]); printf("\n"); getch(); } 我以为结果就是打印出123,可是编译出错...
c语言中数组名代表数组首地址,它的值在运行期间是固定不变的,但是在main函数的参数中对指针数组名却可以出现类似于argv++的操作(谭浩强老师的c程序设计中有这 样的程序),这不是前后矛盾了吗?盼高手解决,谢谢。 问题补充: 首先谢谢大家的回答,谭老师的书中写道“main函数的第二个形参是一个指向字符串的指针数组...
指针接收数组元素的地址,所以没问题。另外我也不太建议你记住数组名是个地址这种不严谨的说法,哪怕他...
3、二级指针指向二维数组后,指针可以作为左值运算,也可以作为右值运算 4、二维数组名只能作为右值运算 5...
不能。因为变量指针可以递增,而数组不能递增,数组可以看成一个指针常量。代码修改:include<stdio.h> int main(void){ int array[5]={2,4,5,23,5};int *p,i;p=array;printf("请输入是五个数:\n");for(i=0;i<5;i++)scanf("%d",&array[i]);printf("\n");printf("输出五个...
s需要传入一个字符串的首地址。字符串可以是普通的常量字符串const char* str = "aaaa";也可以是一个数组保存的字符串char str2[10] = "bbb";输出时,str和str2都是字符串的首地址。所以都可以作为%s对应的参数。
数组名为常量地址不可..指针和地址不要混为一谈,引一段PLP3th的内容:指针:程序员们(甚至一些教科书作者)常常将指针等同于地址,但这实际上是一个误解。指针是一个高级概念,就是对于对象的引用(一个变量,它的值是其它对象的引
3、二级指针指向二维数组后,指针可以作为左值运算,也可以作为右值运算 4、二维数组名只能作为右值运算 5...
数组名是数组的首地址,就是数组中第一个元素的地址,是常量。常量是不能出现在赋值号=左边作为左值的。楼上的都没有解释清楚,说数组名就是指针是错误的,指针是变量,是用来存储变量地址值的变量,而数组名是常量。一般情况下声明一个数组,比如char a[10];之后,数组名a都是数组的首地址,是一...