初识C语言

前言

初识C语言


一、C语言基本思想介绍

1.main函数是程序的入口,且main函数有且只有一个.
2. <stdio.h>标准输入输出头文件.stdio =可以看成是standard和input还有output的组合.

二、数据类型

1.引入原由:因为不同数据类型所表示的数据范围不同,故引入数据类型可满足不同的场景.
2.具体大小:其大小(单位是字节)可根据编译器自动计算,代码如下:

	printf("int:   %d\n", sizeof(int));
	printf("float: %d\n", sizeof(float));
	printf("double:%d\n", sizeof(double));
	printf("char:  %d\n", sizeof(char));
	printf("short: %d\n", sizeof(short));
	printf("long:  %d\n", sizeof(long));
	printf("long long:%d\n", sizeof(long long));
	printf("llong:%d\n", sizeof(long long));
	printf("long double:%d\n", sizeof(long double));

程序运行结果如下:
在这里插入图片描述

三、常量和变量

1.常量:用于描述不变化的量.
2.变量:用于描述变化的量.

  1. 局部变量:在代码块({})之内的变量
  2. 全局变量:在代码块({})之外的变量
int num1 = 20;  //全局变量

int main()
{
	int num2 = 10;  //局部变量
	system("pause");
	return 0;
}

思考:局部变量和全局变量可以共用同一个变量名么?
先看代码:

#include<stdio.h>
#include<windows.h>

int a = 100;

int main() 
{
	int a = 10;
	printf("%d\n",a);

	system("pause");
	return 0;
}

再看运行结果:
在这里插入图片描述
编译通过,说明代码没有语法错误,那么是什么原因呢?
分析:

  1. 原来当局部变量和全局变量共用一个变量名的时,局部变量优先;
  2. 但是在编程过程中还是建议不要吧二者变量名设为同一个,因为随着代码工程量的增大,会增加程序出错的几率.
  3. 如果没有局部变量,只有全局变量,则程序自然只会输出全局变量.如图所示:

在这里插入图片描述
3.对两个数求和----使用输入函数scanf;
注意:使用scanf函数的时候,输入的值最终传到了初始化变量的地址中,故传值的时候要取地址(&)传值,而不是直接传值.
请看代码:

int main() 
{
	int num1 = 0;
	int num2 = 0;
	//输入数据---使用scanf函数
	scanf("%d %d", &num1, &num2); //取地址传参
	int sum = 0;
	sum = num1 + num2;
	printf("sum = %d\n",sum);

	system("pause");
	return 0;
}

接下来再看运行结果:
在这里插入图片描述
结果显示出错了???但是我们不必惊慌.只需要在main函数前面加上代码段"#pragma warning(disable:4996)"即可解决问题.
在这里插入图片描述

四、变量的作用域和生命周期

  1. 局部变量的作用域:通俗来讲,该段代码在哪里可以用,哪里就是他的作用域
    例如:
    在这里插入图片描述
    分析:因为num的作用域就是包含他所在的1{}内,而输出是在2{}内,这是访问不了1{}的,故会报错.也就是说num的作用域就是1{}.如果把输出函数的作用域也放在1{}内,则可以正常运行.
    在这里插入图片描述
    相反的,如果num的作用域属于2{},printf的作用域属于1{},结果会怎样呢?
    在这里插入图片描述
    其实这就相当于num对于printf是全局变量,因此可以无限制的被调用.
  2. 全局变量的作用域,看一段代码和运行结果:
    在这里插入图片描述
    因此我们可以得出全局变量的作用域在整个工程.验证在一个源文件中访问另外一个源文件中的全局变量-----新建一个源文件,取名"test1",输入如下代码:
#include<stdio.h>

int num2 = 200;

如果直接运行,则会报错;
在这里插入图片描述
此时则需要我们在test源文件中声明num2.
在这里插入图片描述

  1. 生命周期----即变量在代码块中的存在和实效

看一段代码:

int main() 
{
	{
	
		int a = 10;
		printf("%d\n",a);  //ok
	}
	printf("%d\n",a);  //error

	system("pause");
	return 0;
}

从代码中我们可以看出,变量a的生命周期只在内部的{}起作用,超出其范围则会失效.
因此,我可以得出结论:

  1. 局部变量的生命周期是从其进入作用域开始,出作用域结束.
  2. 全局变量的生命周期是整个程序.

总结

最后,附上今天学习的思维导图,对所学知识有一个宏观掌握.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值