学习C语言---第二天

一、常量 -- 在程序执行期间不会改变

在C语言中常量一般分为以下几种:

  • 字面常量
  • const修饰的常变量
  • #define定义的标识符常量
  • 枚举常量
#include <stdio.h>

//#define 定义的标识符常量
#define MAX 10

//枚举常量
//枚举-一一列举,比如:
//性别:男,女
//三原色:红、黄、蓝
//星期:一、二、三、四、五、六、日

//枚举关键字 - enum
enum Sex
{
	MALE, // 0
	FEMALE // 1
};
//MALE,FEMALE -- 枚举常量

enum Color
{
	//修改枚举常量的默认值
	RED = 3,
	BLUE, // 4
	YELLOW // 5
};
int main() 
{
	3;//像这种直接写出来的值就是字面常量
	3.14;

	//const -- 常属性
	//const 修饰的常变量
	const int num = 4; //这个地方num本质上还是变量,只是具有了常属性,后面不可再次修改num的值;
	//num = 5; //报错,表达式左边必须是可修改的值
	//int arr[num] = {0};//报错,[]应是常量表达式
	int arr[MAX] = {0}; //可执行
	printf("%d\n", num); //4
	printf("%d\n", MAX); //10
	
	//枚举常量的值默认从0开始,可以在创建的时候修改,后续不可修改
	//枚举常量可以赋值给通过枚举定义的变量
	enum Sex s = MALE;
	s = FEMALE; //可执行
	//MALE = 3; //报错,表达式左边必须是可修改的值
	printf("%d\n", MALE); //0
	printf("%d\n", FEMALE); //1

	printf("%d\n", RED); //3
	printf("%d\n", BLUE); //4
	printf("%d\n", YELLOW); //5

	return 0;
}

二、字符串 -- 由双引号引起的一串字符

        在C语言中,字符串是由空字符\0结尾的一堆字符数组,所以字符串可以存储在字符数组中。在计算字符串长度的时候\0是结束标志,不算做字符串内容。

#include <stdio.h>
#include <string.h>

int main()
{
	"abcd";
	"hello world!";
	"";//空字符串

	//把字符串存在字符数组里,在语法上是没有问题的
	//字符串“abc”存入字符数组时会自动存入一个值为0的转义字符\0表示结尾
	//  \0 - 字符串的结束标志
	char arr[] = "abc"; //数组
	char arr2[] = {'a', 'b', 'c'}; //没有结束标志\0,在打印完abc后还会继续打印
	char arr3[] = { 'a', 'b', 'c', 0}; //相当于在末尾添加了结束标志\0  { 'a', 'b', 'c', '\0'} - \0对应的ASCII码值是0
	char arr4[] = {'a'};
	printf("%s\n", arr); //abc  %s - 打印字符串格式的数据
	printf("%s\n", arr2); //abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫蘟bc
	printf("%s\n", arr3); //abc

	//strlen - string length  计算字符串长度 -- 需要引入头文件 string.h
	printf("%d\n", strlen(arr)); // 3
	printf("%d\n", strlen(arr2));// 35 -- 随机值,遇到了\0就停止统计
	printf("%d\n", strlen(arr3));// 3
	printf("%d\n", strlen(arr4));// 218 -- 随机值,遇到了\0就停止统计
	return 0;
}

三、转义字符 -- 转变原来的意思

#include <stdio.h>
#include <string.h>

int main()
{
	printf("abcn"); // abcn
	printf("abc\n"); //abc   \n - 转义字符  换行

	//在早期的C语言里,由两个问号(?)再加上一个字符的形式被称为三字母词,例如 ??) 老版本编译器编译成 ]
	printf("(Hello World??)"); //(Hello World??) -- 在老版本的编辑器里输出的是 (Hello World] ,例如Visual C++ 6.0
	printf("c:\test\32\test.c\n"); //c:       est    est.c //(这段注释会报错:在注释中遇到意外的文件结束) \t - 水平制表符  相当于按键盘的TAB键
	printf("c:\\test\\32\\test.c"); // c:\test\32\test.c

	//printf("%c\n", '''); //报错,原因:编译器会将前面两个单引号看成一对儿
	printf("%c\n", '\''); //打印字符格式的数据 - '

	// \32 -- 表示32作为八进制数字所对应的十进制数值,以这个十进制数值作为ASCII码值,这个ASCII码值对应的字符
	// \x32 -- 表示32作为十六进制
	printf("%d\n", strlen("c:\test\32\test.c")); // 13 - \t和\32都是转义字符,看做一个字符

	return 0;
}

四、选择语句 -- if...else...

#include <stdio.h>

int main()
{
	int input = 0;
	printf("好好学习?(1,是  2,不是):");
	scanf("%d", &input);
	if (input == 1 || input == 2)
	{
		if (input == 1)
			printf("走上人生巅峰\n");
		else
			printf("回家养猪\n");
	}
	else
		printf("你选择了回炉重造\n");

	return 0;

}

五、循环语句

#include <stdio.h>

int main()
{
	int day = 0;
	//while循环
	/*while (day < 365)
	{
		day++;
		printf("学习C语言第%d天\n", day);
	}*/

	//for循环
	/*for (int i = 1; i < 366; i++)
	{
		printf("学习C语言第%d天\n", i);
	}*/

	//do...while -- 至少输出一次
	do
	{
		day++;
		printf("学习C语言第%d天\n", day);
	} while (day < 365);
	printf("你学习C语言达到了365天\n");
	return 0;
}

六、函数

#include <stdio.h>

int main()
{
	int sum = Add(10, 20); // 调用函数
	printf("sum = %d\n", sum); // sum = 30
  return 0;
}

//int -- 函数返回类型
//Add -- 函数名
//x,y -- 函数参数
//{}里的代码 -- 函数体
// return sum -- 返回值
int Add(int x, int y) // 加法函数
{
	int sum = x + y;
	return sum;
}

七、数组 -- 一种相同类型元素的集合

#include <stdio.h>

int main()
{
	//向内存申请了一段连续的存储空间,并命名为arr
	//在arr里面存入整型数值1,2,3,4,5,6,7,8,9,10
	//对应的下标是 0,1,2,3,4,5,6,7,8,9 -- 下标默认从0开始
	int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //定义一个存放10个整数数值的数组
	char arr2[4] = {'a', 'b', 'c', 0}; //定义字符类型数组
	float arr3[4] = {1.43f, 2.13f, 3.14, 4}; //定义实型数组
	
	//用下标的形式访问数组元素
	printf("%d\n", arr[3]);// 4
	printf("%c\n", arr2[2]);// c
	printf("%c\n", arr2[3]);// 
	printf("%f\n", arr3[2]);// 3.140000
	printf("%f\n", arr3[3]);// 4.000000
	return 0;
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值