一、重温C语言
#include<stdio.h>
int main()
{
printf("Hello World!\n");
printf("重温C语言第一天\n");
printf("比特\n");
return 0;
}
①printf() 是函数,用printf()时需要调用 #include<stdio.h> ,printf()函数在打印数据的时候,可以指定数据的格式。例:printf("%d\n",a); //将a 以十进制打印。 %c:字符类型打印,%s:字符串类型打印。
②一个工程可以有多个.c文件,但是只能有一个 main() 函数
二、数据类型:int,short,float,double,char;
例:字符型:char num= 'a'; //定义了一个字符
整型: int age = 58; //定义一个人的年龄
单精度浮点型:float weight = 56.3 //定义一个人的体重
short : 短整型 double:双精度浮点型
三、数据类型的存储大小
sizeof() // C语言关键字(操作符):用于计算数据类型或者变量空间的大小,单位:字节(byte)
例:
#include<stdio.h>
int main()
{
printf("数据类型的空间大小\n");
printf("%d\n",sizeof(int)); //整型:4byte
printf("%d\n",sizeof(char)); //字符型:1byte
printf("%d\n",sizeof(float)); //单精度浮点型:4byte
printf("%d\n",sizeof(short)); //短整型:2byte
printf("%d\n",sizeof(double)); //双精度浮点型型:8byte
printf("%d\n",sizeof(long)); //长整型:4byte
printf("%d\n",sizeof(long long));//长长整型:8byte
return 0;
}
四、定义变量
1、数据类型 变量名称 = 值 (初始化)例:float num = 0;
2、输出字符:%d: 整型 ,%lf : double型 , %f : float型 ,%c : char型
3、数据类型分类:全局变量 ,局部变量。当全局变量与局部变量相同时,局部变量优先使用。
例:结果输出:a = 10。优先输出局部变量
#include<stdio.h>
int a = 100; //a:全局变量-----{}外部的是全局变量
int main()
{
int a =10; //a:局部变量----{}内部的是局部变量
printf("小向学习C语言第二天!\n");
printf("a = %d\n",a);
printf("\n");
return 0;
}
4、写一个代码:输入两个整数,并求两个整数和
scanf()函数:是标准的输出函数,具有标准的用法,例:scanf("%d%d",&a,&b);后面的变量必须加&,表示地址。
#include<stdio.h>
int main()
{
int a=0,b=0; //定义两个整型变量
scanf("%d%d",&a,&b);
printf("sum = %d\n",a+b);
}
5、变量的作用域和声明周期
局部变量的作用域:变量所在的局部范围
全局变量的作用域:整个工程(需要用关键字声明(extern))
局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束
全局变量的生命周期:整个工程
例:
五、常量
1、const 修饰的常变量 ,例:const int a = 20; 这时 变量 a 只能为10,不能改变,且变量 a 是常变量;例:const int a = 10; int arry[a] = {0}; 此时编译会出错,因为 a 是常变量,数组arry的下标必须是常数。
2、#define 定义的标识符常量 例:#define max 100 // max 就是代表 100
结果输出 n = 100
#define MAX 1000
#include<stdio.h>
int main()
{
int n = MAX;
printf("n = %d\n",n);
return 0;
}
3、枚举常量。枚举的的写法:enum Sex{ male, female, secret}; {}里面的都是常量。
enum Sex{male,female,secret};
#include <stdio.h>
int main()
{
printf("%d\n",male); // 输出 0
printf("%d\n",female); // 输出 1
printf("%d\n",secret); // 输出 2
return 0;
}
六、字符串和转义字符
1、字符串:由双引号引起来的一串字符。字符串的结束标志是一个 \0 的转义字符(计算字符长度时,不包含 \0 转义字符,隐藏在字符串末尾),在计算字符串长度的时候,\0 是结束标志,不算字符串内容。定义字符串:char arr[] = "hello"; 此时数组长度是6位。
arr1 完整的输出了字符串 “hello”,而 arr2 却输出了 “hello烫烫烫烫蕾ello”(hello后面是地址存放的乱码)若将arr2 'o',后面加一个 '\0',则也能完整输出“hello”,可见,\0是字符串的结束标志位。
2、strlen() sting lenth 字符串长度。例:int len = strlen("abc"); //这时,len被赋值 3 ,strlenI()函数是计算字符串的长度;使用该函数时,需要引用头文件 #include<string.h>。
#include<stdio.h>
#include<string.h> //使用strlen()函数时需要的头文件
int main()
{
char arr1[] = "hello";//定义字符数组
char arr2[] = {'h','e','l','l','o'};
printf("小向重温C语言第三天\n");
printf("%d\n",sizeof(arr1)); //输出 6
printf("%d\n",strlen(arr1)); //输出 5
printf("%d\n",strlen(arr2)); //输出 随机数
printf("\n");
return 0;
}
因为数组 arr2 没有 \0 的结束标志,所以输出一个随机数。
3、转义字符
转变了原有字符的意思,例:\n, \r ,\t。(\' ,\" 代表 ',")
\\:表示一个 \ ,防止它被解释为一个转义序列符。例:\\t 就是 \t
\ddd :ddd表示1~3个八进制的数字。如:\101 八进制:65
\xdd:dd表示2个十六进制的数字。如:\x22(注意:一定要加x)
#include<stdio.h>
int main()
{
printf("%s\n","\"");//输出 "
printf("%c\n",'\'');//输出 ’
printf("a\\tbc\\n");//输出 a\\tbc\\n
printf("\n");
printf("a\tbc\n");//输出 a bc 跳转到下一行
printf("%c\n",'\101'); //101的十进制数是 65,输出:A
printf("%c\n",'\x41'); //41的十进制数是 65, 输出:A
return 0;
}
练习题:求输出结果
#include<stdio.h>
#include<string.h>
int main()
{
printf("%d\n",strlen("abc"));//输出:3
printf("%d\n",strlen("c:\test\328\test.c"));//输出 14
return 0;
}
解释:一个转义字符算一个字符,\32 算一个字符,八进制数没有8。