C二维数组与字符数组 笔记

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace  std; //count endl
/* run this program using the console pauser or add your own getch, system("pause") or input loop */








//4.0 char -function 


int main(){
char ar[10] ;
char br[10] = {'a','b','c','d'};
char cr[10] = {'f','g','h','i'};


gets(ar);//最多能输入9个,因为最后的位置要留给\0; 
puts(ar);

int length = strlen(br);//4 有效长度。 

strcat(br,cr);//将cr连接到br中,所以要注意br的长度一定要保证连接cr后还要给\0留一个位置。 

//strcpy(ar,br);//把br复制给ar 

int result = strcmp(ar,br);// 1 0 -1
printf("result = %d\n",result);
}


//字符数组 :存放字符的有序空间。 


/*
//2.1  访问字符数组的地址,可以得到其内部的内容 
int main(){
int ar[10] = {0};
cout<<ar<<endl;


// printf("%x\n",ar);//address: 6dfee8
// printf("%s\n",ar);//empty 

char br[10] = {'a','b'};
cout<<br<<endl; //ab 访问地址得到了字符数组中的内容。 
// printf("%x\n",br); //6dff06 
// printf("%s\n",br);//ab


char *p = "abcdef"; 
cout<<p<<endl;//abcdef

int a = 100;
int *p1 = &a;
cout<<p1<<endl;//0x6cfef8 得到的不是整型a中的内容100,而是a的地址。
//所以要通过访问地址得到里面的内容,只有访问字符数组时,才能使其输出数组中的内容,其它类型不行。 

printf("size = %d\n",sizeof(br));//10=数组长度 
printf("length = %d\n",strlen(br));//2=有效长度 
// char *p = "abcdef";
// printf("");

return 0;





/*
//2.0 字符串会以\0作为结束符,方便计算字符串有效长度 
void fuzhi_c(char ar[],int n){//形参类型一定要写 
for(int i = 0; i < 9 ;i++){
ar[i] = 'a'+i; 
}
}
void print(char ar[],int n){//形参类型一定要写 
for(int i = 0; i < 10;i++){
printf("%c ",ar[i]);//逐一访问字符数组中的字符 
}
}
int main(){
char ch[10];
fuzhi_c(ch,sizeof(ch)/sizeof(char));
print(ch,sizeof(ch)/sizeof(char));
printf("%s ", ch);//直接访问字符数组地址得到里面整个数组的内容;正常访问整个数组,是访问得到一个地址 无法访问里面的内容。但字符数组可以。 
// abcdefghij)  显示的还有其它东西,原因是\0 没有在10个位置当中,要把第10个位置留给\0.即将10改为9,在循环时 
printf("\n");
}




/*
//1.0 
//二维数组用数组名作为形参时,必须在列的位置写上要要传输数组的列数,
//否则会报错,这样就很 受限制,所以用指针调用会比较方便。 
void print(int ar[][4], int m, int n){
for (int i = 0; i < m; i++){
for (int j = 0; j< n; j++){
printf("%d ",ar[i][j]);
}
printf("\n");
}
printf("\n");
}


void print(int ar[][3], int m, int n){
for (int i = 0; i < m; i++){
for (int j = 0; j< n; j++){
printf("%d ",ar[i][j]);
}
printf("\n");
}
printf("\n");
}


int main(int argc, char *argv[]) {
int ar[3][4]; 
int br[2][3] = {1,2,3,4,5,6};//完全赋值
int cr[2][3] = {1,2,4,3};//
int dr [2][3] = {{1},{4}}; 
printf("size of ar is %d!\n",sizeof(ar));//4*12=48
for (int i = 0;i < 3; i++){
for (int j = 0; j < 4;j++){
ar[i][j]=i+j;

}

}
print(ar,3,4);
print(br,2,3);
print(cr,2,3);
print(dr,2,3);
return 0;
}*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值