2021-01-10

2 篇文章 0 订阅
1 篇文章 0 订阅

初识别C语言(二)



一、scanf输入4996报错解决办法

int main() 
{
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	scanf("%d %d",&num1, &num2);
	sum = num1 + num2;
	printf("sum = %d\n",sum);
			
	system("pause");
	return 0;
}

在这里插入图片描述

  • 解决办法:在main之前加上:#pragma warning(disable:4996)

二、常量

  • 字面常量

    int main() 
    {
    	3;
    	100;
    	3.14;
    
    	system("pause");
    	return 0;
    }
    
    
  • const修饰的常变量:被const修饰的常变量不可修改

    在这里插入图片描述
    在这里插入图片描述
    其中 n 是变量,但是又有常属性,所以我们说 n 是常变量;数组的定义中元素的大小只能用常数.

  • #define 定义的标识符常量

    在这里插入图片描述

  • 枚举常量 – 关键字:enum

    enum Sex 
    {
    	MALE,
    	FEMALE,
    	SECRET
    };
    
    int main() 
    {
    	enum Sex s = FEMALE; //用枚举常量赋值
    	printf("%d\n",MALE);
    	printf("%d\n", FEMALE);
    	printf("%d\n", SECRET);
    
    	system("pause");
    	return 0;
    }
    

    在这里插入图片描述

  • 枚举本身的常量不可修改,枚举类型所定义的变量是可以修改的

三、字符串

C语言中的字符串就是用双引号引起来的一串字符

  • “abcd”;“hello world”;""

    int main() 
    {
    	char arr1[] = "abc";
    	char arr2[] = { 'a','b','c' };
    
    	printf("%s\n",arr1);
    	printf("%s\n",arr2);
    
    	system("pause");
    	return 0;
    }
    

    在这里插入图片描述
    我们发现 arr1[] 是以 0 结尾,而 arr2[] 是没有以 0 结尾,若加上0,则输出结果一样.
    在这里插入图片描述

  • 这是因为字符串是以 ‘\0’ 结束.若无此结束标志,则会打印随机值.’\0’ 对应的ASII码是0.

    int main() 
    {
    	char arr1[] = "abc";
    	char arr2[] = { 'a','b','c' };
    	printf("%d\n",strlen(arr1));
    	printf("%d\n",strlen(arr2));
    	system("pause");
    	return 0;
    }
    

    在这里插入图片描述

  • 这是因为在计算 arr1 的时候,计数到 3 时遇到 ‘\0’,而在计算 arr2 时,由于超过 ‘a’,‘b’,‘c’ 之后是随机值,即在哪遇到 ‘\0’ 就在那停止计数.

    在这里插入图片描述

四、转义字符

  • \? – 在书写连续多个问号时使用,防止他们被解析成三字母词

  • \’ – 用于表示字符常量’

  • \“ – 用于表示一个字符串内部的双引号
    在这里插入图片描述

  • \\ – 用于表示一个反斜杠,防止它被解释为一个转义序列符。

  • \a – 警告字符,蜂鸣

  • \b – 退格符

  • \f – 进纸符

  • \n – 换行

  • \r – 回车

  • \t – 水平制表符
    在这里插入图片描述
    在这里插入图片描述

  • \v – 垂直制表符

  • \ddd – ddd表示1~3个八进制的数字。 如: \130 X
    在这里插入图片描述
    这是因为 ‘\t’ 算一个字符.而 ‘\32’ 表示八进制,也代表一个字符,故最后结果是 c + : + \t + e + s +t + \32 + \t + e + s + t + . + c = 13

  • \xdd – dd表示2个十六进制数字。 如: \x30 0

五、选择语句

	int main() 
	{
		int input = 0;
		printf("学习编程\n");
		printf("李要好好学习吗?(1/0) > : ");
		scanf("%d",&input);
		if (input == 1)
			printf("好offer\n");
		else
			printf("回家种地\n");
	
		system("pause");
		return 0;
	}

在这里插入图片描述
在这里插入图片描述

六、while循环语句

int main() 
{
	int line = 0;
	printf("开始学习编程!!!\n");

	while (line < 20000) 
	{
		printf("敲代码: %d\n",line);
		line++;
	}
	if(line >= 20000)
		printf("恭喜你,喜提offer!!\n");

	system("pause");
	return 0;
}

在这里插入图片描述

七、函数

int Add(int x ,int y) 
{
	int z = x + y;
	return z;
}

int main() 
{
	int sum = 0;
	sum = Add(100,200);
	printf("sum = %d\n", sum);
	system("pause");
	return 0;

}

在这里插入图片描述

八、数组

  • 数组就是一组相同元素的集合

    int main() 
    {
    	int arr1[10]; //定义一个空间大小为10的整型数组
    	int arr[10] = { 1,2,3,4,5,6,7,8,9 }; //对数组初始化
    	char arr2[20];
    	float arr3[5];
    
    	system("pause");
    	return 0;
    }
    
  • 数组的下标是从0开始.即:arr[4] 代表第五个元素
    在这里插入图片描述

  • 循环打印数组里面的值

    int main() 
    {
    	int arr1[10]; //定义一个空间大小为10的整型数组
    	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; //对数组初始化
    
    	int i = 0;
    	while (i < 10) 
    	{
    		printf(" %d", arr[i]);
    		i++;
    	}
    	printf("\n");
    
    	system("pause");
    	return 0;
    }
    

    在这里插入图片描述

九、操作符

  • 算数操作符: + - * / %

  • 移位操作符: >> <<
    在这里插入图片描述

  • 位操作符:
    &(遇0则0)
    ^(相同为0,相异为1)
    |(有1则1)
    在这里插入图片描述

  • 赋值操作符:
    -=
    +=
    -=
    *=
    /=
    &=
    ^=
    |= ; >>= ; <<=

  • 单目操作符(一个操作数)
    ! 逻辑反操作;
    – 负值;+ 正值;
    & 取地址;
    -sizeof 操作数的类型长度(以字节为单位); ~ 对一个数的二进制按位取反;-- 前置、后置- -
    ++ 前置、后置++; * 间接访问操作符(解引用操作符)
    (类型) 强制类型转换比

  • 关系操作符:>; >=; <; <=; != 用于测试“不相等”; == 用于测试“相等”

  • 逻辑操作符: && 逻辑与; || 逻辑或

  • 条件操作符: exp1 ? exp2 : exp3

  • 逗号操作符:exp1 , exp2 , exp3 , … expN

  • 下标引用、函数调用和结构成员 [] () . ->

十、sizeof

  • sizeof 计算的是变量/类型所占空间的大小,单位是字节.
    在这里插入图片描述
    在这里插入图片描述
  • 计算数组空间大小

在这里插入图片描述

  • 计算数组个数大小

加粗样式


总结

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值