初识C语言

1. 数据类型

在这里插入图片描述
每种类型的大小(单位为字节)

#include <stdio.h>
int main()
{
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(long long));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	printf("%d\n", sizeof(long double));
	return 0;
}

结果如下:

在这里插入图片描述

2. 变量,常量

2.1 变量的命名

只能以字母、数字和下划线组成
不能以数字开头
长度不能超过63个字符
变量名中区分大小写
变量名中不能使用关键字

2.2 变量的分类

全局变量
局部变量

#include <stdio.h>
int a = 200;//全局变量
int main()
{
	int b = 100;//局部变量
	printf("%d\n", a);
	printf("%d\n", b);

	return 0;
}

在这里插入图片描述

当局部变量与全局变量同名时,局部变量优先

#include <stdio.h>
int a = 200;//全局变量
int main()
{
	int a = 100;//局部变量
	printf("%d\n", a);

	return 0;
}

在这里插入图片描述
所以,在创建变量时,应避免全局变量与局部变量重名。

2.3 变量的作用域和生命周期

作用域

变量可用的代码范围叫这个变量的作用域
局部变量的作用域是变量所在局部范围
全局变量的作用域是整个工程

生命周期

变量的生命周期指的是变量创建到变量的销毁之间的时间段。
局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。

区局变量的生命周期:整个程序的生命周期。

2.4 常量

C语言中常量分为以下几种:
字面常量
const 修饰的常变量
#define 定义的标识符常量
枚举常量
例:

#include <stdio.h>
int main()
{
	3.14;//字面常量
	1000;//字面常量
#define A 100//#define 定义的标识符常量
	printf("a = %d\n", A);
	return 0;
}

运行结果:

在这里插入图片描述
const 修饰的常变量不能直接进行修改

#include <stdio.h>
int main()
{
	const int a = 10;
	a = 15;//不能像这样直接进行修改,程序无法运行
	printf("a = %d\n", a);
	return 0;
}

const 修饰的常变量具有常量不可修改的性质,但本质上任然是变量。

枚举常量演示:

#include <stdio.h>
enum color
{
	blue,
	red,
	green,
	white,
	black
	//blue,red,green,white,black是color的可能取值,是常量
	//所以叫枚举常量
};
int main()
{
	printf("%d\n", blue);
	printf("%d\n", red);
	printf("%d\n", green);
	printf("%d\n", white);
	printf("%d\n", black);
	//枚举常量默认从0开始,依次递增
	return 0;
}

结果如下:
在这里插入图片描述

3. 操作符

本篇文章是与大家分享一部分操作符,还有许多操作符在后期有了更深的理解后,再与大家分享。

3.1 算术操作符

  +     -    *     /     %

‘/’ 用于运算两个数相除后的商

例:

#include <stdio.h>
int main()
{
	int a = 11;
	int b = 4;
	int c = a / b;
	printf("%d\n", c);
}

结果如下:
在这里插入图片描述

**%**用于运算两个数相除的余数

例:

#include <stdio.h>
int main()
{
	int a = 11;
	int b = 4;
	int c = a % b;
	printf("%d\n", c);
}

在这里插入图片描述

如果想得到两数相除后的浮点数,那么**/**两边至少有一个浮点数

例:

#include <stdio.h>
int main()
{
	float c = 10.0 / 4;
	printf("%f\n", c);
}

在这里插入图片描述

3.2 赋值操作符

= += -= *= /= &= ^= |= <<= >>=

操作符+=

a += 1与a = a + 1的效果是一样的

同理, -= *= /=+= 类似。

3.3 单目操作符

在这里插入图片描述

sizeofstrlen是有区别的,sizeof计算的是变量的类型长度,单位是字节,如下代码:(32位C语言编译器)

#include <stdio.h>
int main()
{
	int a = 1;
	printf("%d\n", sizeof(a));
}

a 是整数类型,整数类型占四个字节,所以代码结果为 4。
在这里插入图片描述

strlen是库函数,是计算字符串长度的,统计的是字符串中’\0’出现之前的字符个数,如下:

#include <stdio.h>
#include <string.h>
int main()
{
	char ch[] = "abcdef";
	printf("%d\n", strlen(ch));
}

代码结果:
在这里插入图片描述

**~**在上篇文章提到过,指将二进制数按位取反,例:

a——00000001

则,

~a——11111110

前置++ 是先+1,再使用, 例:

#include <stdio.h>

int main()
{
	int a = 5;
	int b = ++a;
	//上面这行代码与 a = a + 1; b = a; 等效
	printf("%d %d", a, b);
	return 0;
}

结果如下:
在这里插入图片描述
后置++

#include <stdio.h>

int main()
{
	int a = 5;
	int b = a++;
	//上面这行代码与 b = a; a = a + 1; 等效
	printf("%d %d", a, b);
	return 0;
}

结果如下:
在这里插入图片描述

前置–后置–前置++ 后置++ 效果类似

强制类型转换

#include <stdio.h>

int main()
{
	int a = (int)5.56;//只取整数部分
	printf("%d\n", a);
	return 0;
}

结果如下:
在这里插入图片描述

3.4 关系操作符

在这里插入图片描述
‘==’ 是测试是否相等的操作符,而 ‘=’ 是赋值符号

3.5 逻辑操作符

在这里插入图片描述
&& 可以理解为并且,在 && 两边必须同时为真,整个表达式才为真
|| 可以理解为或者,在 || 两边只要有一边是真,即为真

#include <stdio.h>

int main()
{
	int a = 12;
	if (a > 10 && a < 15)
		printf("YES\n");
	else
		printf("NO\n");

}

此段代码 && 两边都为真,所以打印结果为:
在这里插入图片描述
将上面代码修改如下:

#include <stdio.h>

int main()
{
	int a = 12;
	if (a > 13 && a < 15)
		printf("YES\n");
	else
		printf("NO\n");

}

此时,输出结果如下:
在这里插入图片描述

3.6 条件操作符

exp1 ? exp2 : exp3

例:
输出两个数中的较大数

#include <stdio.h>

int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);
    if (a > b)
        printf("%d\n", a);
    else
        printf("%d\n", b);


    return 0;
}

上面这段代码与下面这段代码效果相同

#include <stdio.h>

int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);
    int c = (a > b ? a : b);
    //上面这行代码效果与下面这段注释的代码效果相同
    //  if (a > b)
    //      printf("%d\n", a);
    //  else
    //      printf("%d\n", b);
    printf("%d\n", c);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值