1、如果仅仅是每次引用字符数组的单个元素,那么字符数组与其他类型的数组没什么不同;
2、如果将字符数组的最后一个元素赋值为结束符,那么字符数组在处理上就比其他类型的数组方便了很多,此时可以进行字符串的整体输入与输出,而其他类型的数组只能是单个元素的输入与输出;
3、字符数组可以采用"jlskdajfl"方式去初始化,也可以采用其他类型数组的初始化的方式{'a','f','g,,,,}去初始化,如char str1[]="abcd",str2[]={'a','b','c','d'};而其他类型的数组只能采用后者;
4、指针数组的主要应用就是应用到字符数组上。
我能想到的大概就是这些了。
我们在使用字符串时,定义是一个字符型数组,比如char s[256];在具体使用时,数组中放入字符串,如:char s[256]={“123456”};或char s[256]={ '1','2','3','4','5','6',0 };字符串以数字0结尾。其中s是数组名,也代表数组指针,它指向数组首字符。
在调用字符串时,我们在使用字符串时,可以用指针或数组名来实现,比如strcat(s,s+i+n);其中前面那个参数就是引用了数组名当成字符串指针,实际上是告诉strcat函数,第1个字符串是从s开始的字符串"123456",第2个参数也是个指针这个指针是s加上i再加n个字符后形成的指针,比如i=1; n=2;时,s+i+n这个指针就指向了字符'4',那么函数strcat接到的第2个字符串就是"456"
如果在使用字符串数组时,我们指定了下标访问时,将访问对应的字符型数据,比如s[0]等于字符'1',当i=1;n=2;时s[i+n]等于字符'4'。
所以说s和s+i+n是两个指针,在计算机中就是两个存储区的开始地址。
#define MAX 1000
//0 00 01 10 000 001 010 011 100 101 110 0000 0001
// 1 2*3 3*7 4*15
// 0 1 2
#include
int cifang(int a,int b)
{
int result=1;
for(int i=0;i {
result=result*a;
}
if(b==0){
return 1;
}
else if(b==1){
return a;
}
else{
return result;
}
}
void insert(char *ar,int i,int j)
{
int x,y;
}
int _tmain(int argc, _TCHAR* argv[])
{
char Array[MAX];
int i=0,j=0,n;
int x;
int temp=0;
printf("input n:");
scanf("%d",&n);
while(i {
int num=cifang(2,i+1)-1;
//printf("%d \n",num);
for(temp=0;temp {
int temp2=temp;
for(x=0;x {
Array[j]=temp2&0x01+'0';
printf("%d ",temp2&0x01);
temp2=temp2>>1;
j++;
}
}
printf("\n");
i++;
}
getchar();
getchar();
return 0;
}