###################################################################################################
Chapter_3
数组
一维数组:
定义: <存储类型><数据类型>数组名[常量表达式];
int data[5];
data和&data[0] 表示首地址
赋值:
//C语言不允许动态定义数组大小
//数组的首地址就是a,数组名是常量,用于存放数组的首地址
//int a[10]; a就是指向a[0]的int型指针常量
选择排序&冒泡排序
二维数组:
赋值:
int a[3][3]={0,1,2,3,4,5,6,7,8,9};//容易出错,最好用花括号括起来
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
也可以不指定第一维,但是第二维必须指定
int a[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
也可以只对前面的赋值,后面的自动赋值0
int a[3][4]={{1},{5,6,7,8},{9,10}};
a[0]首地址,一级指针常量
字符数组:
定义:
char string[20]="hello"
等价于 char string[20]={'h','e','l',''l','o','\0'}; //这种赋值方式必须后面加上 '\0'
字符数组引用赋值和其他运算和普通数组一样,只是可以scanf %s
scanf("%s",string) //%s 输入末尾自动加上\0,这是一个结束标志
printf("%s\n",string)
如果一个scanf函数输入多个字符串,则以空格为间隔
char string1[5],string2[5],string3[5];
scanf("%s%s%s",string1,string2,string3);
H O W \0 随机值
A R E \0 随机值
Y O U ? \0
二维字符数组(也可称之字符串数组)定义和赋值问题:
char string[3][10]={"pascal","cobol","fortran"};
后面没有初始化的部分是随机值,不知道内存里面到底是什么,一维字符数组也是一样的
字符处理函数:
char c;
c=getchar();
c=65;
putchar(c); //输出A
1. char string[80];
gets(string);//输入字符串可以包含空格,仅以回车结束,
//不可以换行结束,和scanf()的区别 scanf 遇空格回车tab都可以结束or指定输入长度%3d
//注意gets这个函数是缺陷的因为gets函数没有限制读取的长度,这样输入过多可能会导致堆栈溢出
安全起见使用gets_s()函数
2. char string[]={"hello"};
puts(string);//输出字符串
#include<string.h>
3. strcpy(string1,"hello") //地址赋值给地址
4. strcat(string1,string2);//地址赋值给地址,拼接起来
5. strcmp(str1,str2);//返回ASCII差值
0是48,A是65,a是97 A比a要小!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6. strlen(str1);//字符串长度,不包括\0
【基础层】##编程##笔记##C## Chapter_3:数组
猜你喜欢
转载自blog.csdn.net/husterjwx/article/details/88429454
今日推荐
周排行