返回类型 函数名(参数列表){
函数体
}
4.2 函数细节
-
4.2.1 根据有无参数列表,分为:无参函数,有参函数
根据有(int、float…) 无(void)返回值类型,分为:有返回值函数,无返回值类型 -
4.2.2 返回值
return; 表示没有返回值,退出
return 表达式 -
4.2.3 无返回值的函数
void 函数名(参数列表){}
入门5 指针 5.1指针是变量,用来存放地址1、不能返回带值的的return
2、可以没有return
3、调用时没有返回值
(指针变量只能使用同类型变量的地址赋值) , 变量必须赋值后才能使用,指针也是
类型* 指针变量
- 每个储存单元(一个字节)都有一个编号----变量地址
- 取地址:变量名前+&
- 地址用16进制,用%p或%P打印
指针可以直接操作储存在地址里面的数据 在指针前面加上*
int n=10;
int* p = &n;
*p =20;//相当于让n=20;这里就是指针通过地址去修改该地址存放变量的值
5.3 函数与指针
指针作为函数参数可以改变函数外变量的值
函数内部改变函数外的局部变量 条件:1、指针参数 2、解引用
void func(int* p){ //参数须传地址
*p = 200; 通过地址改变值
}
int main(){
int n=10;
func(&n);
//n的值就变成了200
}
5.4 指针连续定义
int* p * q;不可以写成int*p,q 因为这表示p是指针,但q不是
从终端输入地址:
int n;
int* p = &n;
scanf("%p",&p);//指针变量的地址
scanf("%p",p);//指针指向的地址,即n的地址
5.5 实践
实现函数divmod()输入参数a,b,同时得到a与b的商和余数
#include入门6 数组 6.1 存储一个固定大小 相同类型 元素的顺序集合。 6.2 定义数组int divmod(int a,int b,int* mod){ *mod =a%b; return a/b; } int main(){ int m,n; scanf("%d%d",&m,&n); int mod; int div = divmod(m,n,&mod); printf("%d/%d=%dn",m,n,div); printf("%d%%%d=%dn",m,n,mod); }
类型 数组名[元素个数]
- 6.2.1 C99可以 int arr[n] 用整型变量作元素个数
C89只能用整型常量作个数 - 6.2.2 初始化:
类型 数组名[个数]={值1,值2, ...} 也可以不指定元素个数,会自动识别 - 6.2.3 访问数组元素:
数组名[索引] 注:索引从0开始到个数-1 - 6.2.4 数组遍历
for(int i=0;i
- 6.2.5 数组输入
int n; scanf("%d",&n); int arr[n]; for(int i=0;i
- 6.2.6 数组赋值
不能=直接赋值,可以通过遍历方式赋值int days[]={31,28,31,.....}; int temp[12]; //temp = days;错!!!! for(int i=0;i<12;++i){ temp[i] = days[i]; }入门7 字符串 存放字符的数组 7.1 字符串最后一个字符必须为字符串变量名为该数组的首地址
7.2 char 字符串变量名[字符数量]
- 7.2.1初始化
char greeting[6]={'H','e','l','l','o',' '};字符串最后一个字符必须为
简单表示:char 字符串变量名[字符数量也可不写]=字符串字面量 char s1[]="Hello";- 7.2.2 输入
char str[1024]; scanf("%s",str);输出
printf("%sn",str);
- 7.2.3 访问
字符数组名[索引]
- 7.2.4 遍历
for(int i=0;' '!=s1[i];++i){ printf("%cn",s1[i]);//字符串纵向输出 }
- 7.2.5 赋值
for(int i=0;' '!=s;++i){ t[i]=s[i]; }或使用函数 strcpy(t,s);把s赋给t
示例:
#includeint main(){ char year[5]; char month[3]; char day[3]; char hour[3]; char minute[3]; char second[3]; scanf("%4s%2s%2s%2s%2s%2s",&year,&month,&day,&hour,&minute,&second); printf("%s年%s月%s日%s时%s分%s秒n",year,month,day,hour,minute,second); }



