/*
* printf格式控制字符串中转义字符序列\r练习
* */
#include <stdio.h>
int main()
{
long int integer = 0;
for (integer = 1; integer <= 987654321l; integer++)
if (integer % 4 )
printf(".");
else
printf("\r");
return 0;
}
/*
* printf练习
* 转义字符序列
* */
#include <stdio.h>
int main()
{
printf("\"\"\n");//输出引号
printf("\\\n");//输出反斜杠
printf("%%\n");//输出百分号
printf("\a");//输出一个蜂鸣声
printf("abc\rxyz\n");//输出abc后退回再输出xyz
/*printf("\c\n");//编译会出warning,提示有无法识别的转义字符序列.进一步如果忽略warning,那么\c整体被忽略(也就是说\c根本就没有被编译入机器码)*/
printf("%x\n", '%');
printf("\x5\n");//格式控制字符串中可以用转义字符序列来实现通用的字符表达方式,通过使用转义字符序列代表任意字符
return 0;
}
/*
*
* scanf练习
* */
#include <stdio.h>
int main()
{
int integer = 0;
scanf("%d", &integer);
printf("%d\n", integer);
/*
int num = 0;
scanf("%d", num);//这样的调用scanf()会引起编译warning
//当gcc 02scanf.c -Wall编译时,编译器报warning
//如果忽略warning,所生成目标代码执行时候可能引发操作系统强制终止代码执行, 因为代码执行至scanf("%d", num)时,将num当一个地址值使用,这样可能会引起地址越界
printf("%d\n", num);
*/
return 0;
}
/*
* 打印C各数据类型当前占有的存储空间大小(byte)
* */
#include <stdio.h>
int main()
{
printf("int->%d\n", sizeof(int));
printf("unsigned int->%d\n", sizeof(unsigned int));
printf("unsigned->%d\n", sizeof(unsigned));
printf("short int->%d\n", sizeof(short int));
printf("short->%d\n", sizeof(short));
printf("unsigned short int->%d\n", sizeof(unsigned short int));
printf("unsigned short->%d\n", sizeof(unsigned short));
printf("long int->%d\n", sizeof(long int));
printf("long->%d\n", sizeof(long));
printf("unsigned long int->%d\n", sizeof(unsigned long int));
printf("unsigned long->%d\n", sizeof(unsigned long));
printf("char->%d\n", sizeof(char));
printf("unsigned char->%d\n", sizeof(unsigned char));
printf("float->%d\n", sizeof(float));
printf("double->%d\n", sizeof(double));
printf("long double->%d\n", sizeof(long double));
return 0;
}
/*
* sizeof()练习
* */
#include <stdio.h>
main()
{
char character = 0;
unsigned char character_u = 0;
printf("char类型变量character占有%d个字节\n", sizeof(character));
printf("unsigned char类型变量character_u占有%d个字节\n", sizeof(character_u));
/*C语言中我们之所以区分数据类型,就是因为不同数据所占存储空间大小不一*/
printf("char类型变量占有%d个字节\n", sizeof(char));
printf("unsigned char类型变量占有%d个字节\n", sizeof(unsigned char));
}
/*
* sizeof()练习
* sizeof()只是用来计算操作数占有的存储空间,它不影响操作数本身.请分析本例
* */
#include <stdio.h>
main()
{
char character = 0;
character = 'a';
printf("char类型变量character存放着%c, 占有%d个字节\n",character, sizeof(char));
sizeof(character = 'b');//sizeof关键字可以对表达式的结果计算占有存储空间大小,但是表达式中的所有修改都不会保留,所以本例程的两行打印结果一样。
printf("char类型变量character存放着%c, 占有%d个字节\n",character, sizeof(char));
}
/*
*
* Discreption:计算87+97演示溢出的例程
* 当采用一个字节存储时,87+97会溢出
* */
#include <stdio.h>
main()
{
char c = 87;
printf("%d\n", c);
c = c + 87;//这里会溢出
printf("%d\n", c);
}
/*
* 操作符练习
* */
#include <stdio.h>
main()
{
int num1 = 0, num2 = 0;
printf("15 / 7 = %d\n", 15 / 7);
printf("15 %% 7 = %d\n", 15 % 7);
num1 = num2 = 7;
printf("num1是%d, num2是%d\n", num1, num2);
num1 += 2;//num = num + 2;
printf("num1是%d\n", num1);
num1 *= 2 + 3;//复合赋值操作符的优先级和赋值操作符的优先级一样,所以语句num *= 2 + 3;等效于语句num = num * (2 + 3);
printf("num1是%d\n", num1);
}