A. c语言中数组和指针的区别与联系
数组是用指针方式实现的,但数组值是一个常量,即不能改变数组的首地址,而指针是一个变量,可以改变它的值;如:数组 a和指针p,p=a+1;是合法的,但a=a+1;是不合法的。
B. 如何在c语言中用数组把商品的编号与名称联系起来
简单地用几个数组:
int i,k=-999,N=5;
int n=888;
char x[20]="c28";
int bianhao[100] ={ 212,351,286,754,888}
char mc[100][20]={"a2","b35","c28","d7","e88888"};
float price[100]={10.2,15.3,16.2,8.2,5.67};
对应的耐团0号商品仔亩孝存 bianhao[0],mc[0],price[0];
对应的i号商品存 bianhao[i],mc[i],price[i];
---------------------------------------
已念稿知 商品编号 n=888 查找:
for (i=0;i<N;i++) if (bianhao[i]==n){k=i;break;};
if (k >= 0) printf("%d %s %f\n",bianhao[k],mc[k],price[k]);
------------------------------------
已知 商品名 x[]="c28" 查找:
k=-999;
for (i=0;i<N;i++) if (strcmp(mc[i],x)==0) {k=i;break;};
if (k >= 0) printf("%d %s %f\n",bianhao[k],mc[k],price[k]);
C. C语言中,指针和数组的区别和联系
区别:C语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,所以数组在C语言的定义中只是一组同类型的普通变量,即使这个变量有可能是指针。所以他的作用比指针小的很多,而指针可以指向任何区的任何数据,所以就会觉得指针和数组名很像,但是必须要注意的是,数组名只是指针中的一种,它是指针中只指向栈区的且指针的移动范围是有限的,即数组长度。而且数组在定义之初就已经有了自己的内存,一般的指针如果未指向某一个内存块时,它是没有自己的内存的,即所谓的野指针。
联系:如上面所说,数组只是定义在栈区的一个连续变量,它的首地址就是一个指针。
总结:不仅数组有指针,所有变量都有指针,指针说白了就是内存中的地址,就像一个房间必须有一个房间号。在C/C++语言中定义一个指针,就是在栈区开辟一个内存空间用来存放它指向的内存地址,然后给指针赋值,就是把地址值赋值给刚才开辟的内存空间,然后通过访问该内存中的地址值来间接访问该地址下存放的数据。如果该地址值指向的是一块静态存储区,如字符串常量等,当然就不可以修改指向的内容啦。
经验之谈,楼楼加分啊
D. C语言怎么连接两个一维数组
你可以考虑用指针配合动态分配内存来做。首先确认两个一维数组的总长度,然后下面是一个例子代码:
int *a = malloc(n*sizeof(int));
将第一个和第二个数组顺序加到a指针就好了。