鹏哥C语言 -3. 转义字符、注释、初识选择语句、初识循环语句、函数、操作符1

转义字符转义字符:转变了原来的意思。例如:打印文件位置:int main(){ printf("c:\test\test.c"); //运行结果中没有\t。 printf("c:\\test\\test.c"); //使用\转义。"\\"表示一个反斜杠。 return 0;}早期编译器中的三字母词int main(){ printf("(are you ok??)");//在某些编译器中会出现将"??)"转义成"]"的情况。称为三字母词。 return 0;}打印单
摘要由CSDN通过智能技术生成

转义字符

转义字符:转变了原来的意思。
例如:

打印文件位置:

int main()
{
	printf("c:\test\test.c"); //运行结果中没有\t。
	printf("c:\\test\\test.c"); //使用\转义。"\\"表示一个反斜杠。
	return 0;
}


早期编译器中的三字母词

int main()
{
	printf("(are you ok??)");
//在某些编译器中会出现将"??)"转义成"]"的情况。称为三字母词。
	return 0;
}

打印单引号

int main()
{
	printf("%c\n",'\'');
//打印单个单引号的时候使用\将一对单引号之间的'转义以打印,
//否则会被识别成与两个引号为一对,最后一个落单。双引号同理。
	return 0;
}

\ddd和\xdd

int main()
{
	printf("%d\n",'\130'); //八进制的130转换成十进制的结果
	//结果为88
	printf("%c\n",'\130'); //打印ASCII码为八进制130的符号。
	//结果为X。

	printf("%d\n",'\x30'); //十六进制的30转换成十进制的结果
	//结果为48
	printf("%c\n",'\x30'); //打印ASCII码为十六进制30的符号。
	//结果为0。
	return 0;
}

注释

用于解释复杂代码。

/*
int main()
{
	printf("%c\n",'\''); //C++注释风格
	/*
	C语言注释风格。
	*/
	return 0;
}
*/不支持嵌套注释。

选择语句

int main()
{
	int input = 0;
	printf("打过恶兆了吗?\n");
	printf("过了-->选1,没过-->选2\n");
	scanf("%d", &input);
	if (input == 1)
		print("好耶!过一次九千块!\n");
	else
		print("加油,大高个打一次1000块。\n");
	return 0;
}

调试过程中遇到了中文乱码的问题,遂搜索解决方案:
文件编码格式出了问题,默认编码格式为utf-8,改为中文编码格式(GB2312)后恢复。
修改编码方法

循环语句

int main()
{
	int line = 0;
	while(line<30000)
	{
		line++;
		printf("写代码%d\n", line);
		if (line == 30000)
			printf("好offer");
	}
	return 0;
}

函数

int Add(int x, int y)
{
	int z = x+y;
	return z;
}
int main()
{
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("输入两个操作数:>");
	scanf("%d %d", &num1, &num2);
	sum = Add(num1, num2);
	printf("sum = %d\n", sum);
	return 0;
}

操作符

算术操作符

若操作符两端均为整数,那么不论结果变量定义为int型还是float型,均只输出整数部分。
+ 加
- 减
* 乘
/ 除
% 取余(取模)

移位操作符

移位操作符移动的是二进制位
>> 右移操作符
<< 左移操作符

位操作符

& 按位与
| 按位或
^ 按位异或

赋值操作符

=
+= : a = a + 5; --> a +=5;
-=
*=
/=
&=
^=
|=
>>=
<<=

单目操作符

只有一个操作数的操作符。
! : 逻辑反操作

int main()
{
	int a = 10;
	printf("%d\n", !a); 
	//因为a的值不等于0,故a为真(非0),!a为假(0),打印结果为0;
	return 0;
}

用法:

int main()
{
	if(a)
	{
	//如果a为真,执行
	}
	if(!a)
	{
	//如果a为假,执行
	}
	return 0;
}

- : 负值
+ : 正值
& : 取地址
sizeof : 计算操作数的类型长度(以字节为单位)

sizeof是操作符,所以sizeof()括号可以省略(一般不省略)

用sizeof计算数组元素个数

int sz = sizeof(arr) / sizeof(arr[0]);
//用数组的总大小除以数组第一个元素的大小即为数组元素个数。
~ : 对一个数的二进制按位取反

不考虑符号位不变。

原码、反码、补码相关基础知识
  • 整型变量占4字节,32比特,故二进制数应为32位。
  • 对正整数:原码、反码、补码相同。
  • 对负数:第一位符号位(1为负),剩下31位表示数。
    原码:直接用二进制表示数。例11使用8位二进制表示应为:00001011,-11为:10001011。
    反码:原码除符号位外,按位取反。
    补码:反码二进制序列+1。
  • 整型变量在内存中存储的是补码。
将0按位取反

0:
原码:
00000000 00000000 00000000 00000000
反码:
11111111 11111111 11111111 11111111
补码:
00000000 00000000 00000000 00000000

-1:
原码:
10000000 00000000 00000000 00000001
反码:
11111111 11111111 11111111 11111110
补码:
11111111 11111111 11111111 11111111


++ : 前置、后置++;- - : 前置、后置- -
int main()
{
	int a = 10;
	int b = 10;
	int c = ++a; //先++,再赋给c
	int d = b++; //先赋给d,再++
	printf("%d\n", a); //输出11
	printf("%d\n", b); //输出11
	printf("%d\n", c); //输出11
	printf("%d\n", d); //输出10
	return 0;
}

* : 间接访问操作符(解引用操作符)

(类型) : 强制类型转换
int main()
{
	int a = (int)3.14; //括号中放希望强制转换的类型,一般不推荐使用
	printf("%d\n", a); //输出11
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值