7.21知识总结

        今天主要学习了将数组传递给函数,全局变量和局部变量。今天学的小知识点比较多,也比较的简单。

#include <stdio.h>        //<>所表示的头文件属于系统包含

#include "math.h"        //""所表示的头文件,属于用户自己定义

int a=10;        //如果放在主函数前面,就是全局变量,也就是说从定义开始到文件结束

                     //,所包含的函数都能用,例如

#include <stdio.h>
int a=10;        //全局变量
int main(){
	int b=4;     //局部变量
	printf("main a = %d\nb=%d\n",a,b);
	fun();        //函数调用
	return 0;
} 
int fun(){        //子函数
	printf("fun a = %d\n",a);
}
//main函数里面能把a,b的值都输出出来,a=10,b=4,而b就相当于一个局部变量,子函数里面不定义a,但a可以在子函数里面被调用出来,b则不能,这就相当于全局变量和局部变量

静态局部变量

        并不会随着函数的结束而销毁,静态变量会保留上次运行的值继续执行下一次执行

#include <stdio.h>
int a=10;
int main(){
	printf("main a =%d\n",a);
	fun();                    //第一次调用
	fun();                    //第二次调用
	fun();                    //第三次调用
	return 0;
} 
int fun(){
	static int a =100;        //静态变量a=100
	a+=1;                     //a+1
	printf("fun a = %d\n",a);
}

实例

        输入0-511之间任意地一个数,让他以二进制形式输出出来,H代表0,T代表1

#include <stdio.h>
void change(int b[][3],int n);
int main(){
	int num;
	int i,j;
	int a[3][3]={0}; 
//	int b;
	printf("请输入一个0-511之间的数:\n");
	scanf("%d",&num);
//	printf("%d",num); 
	
	for(i=0;i<3;i++){
		for(j=0;j<3;j++){
			a[i][j]=num%2;
			num/=2;
			printf("%d ",a[i][j]);
		}
		printf("\n");
	}
	printf("\n");
	change(a,3);
//新增 
	for(i=0;i<3;i++){
		for(j=0;j<3;j++){
			if(a[i][j]==0) 
			printf("H ");
			else
			printf("T ");
		}
		printf("\n");
	}
	return 0;
} 
void change(int b[][3],int n){
	int i,j;
	int c;                    //定义一个变量用来作为媒介
	for(i=0;i<n;i++){
		for(j=0;j<n;j++){
			if(i==1&&j==1){    //因为是三行三列的数组,所以转换时候中间的值是不用再次进行转换的所以遍历到中间数时就会返回
				return ;
			}
			else{
				c=b[2-i][2-j];    //将最后一个元素赋给空置
				b[2-i][2-j]=b[i][j];//将第一个元素的值赋给最后一个元素
				b[i][j]=c;        // 将空值里面的值赋给第一个元素
                                   //以此类推
//				printf("%d ",a[i][j]);
			}
	
		}printf("\n");
	
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值