#include
int main()
{
printf("hello world");
//printf是打印函数,属于C语言库函数需要引用头文件#include
return 0;
}
main()是主函数,一个程序文件中有且仅有一个主函数。
基本类型
代码 | 类型 |
---|---|
char | 字符数据类型 |
short | 短整型 |
int | 整型 |
long | 长整型 |
long long | 更长的整型 |
float | 单精度浮点型 |
double | 双精度浮点型 |
输出格式
%… | 打印类型 |
---|---|
%d | 打印整型 |
%c | 打印字符型 |
%s | 打印字符串 |
%f | 打印浮点型 |
%lf | 打印双精度浮点型 |
%p | 打印地址 |
%x | 打印16进制 |
%o | 打印8进制 |
示例
#include
int main()
{
int a = 10;
printf("%d\n", a);
char b = 'c';
printf("%c\n", b);
char arr[] = "hello";
printf("%s", arr);
float c = 1.0;
printf("%f\n", a);
double pi = 3.14;
printf("%lf\n", pi);
int d = 20;
printf("%p\n", &d);
return 0;
}
int main()
{
char a=10;
printf("%d\n",sizeof(a));
printf("%d\n",sizeof a); //求变量时可以省略括号
printf("%d\n",sizeof(char));
printf("%d\n",sizeof char); //error!求字符类型时括号不能省略
}
计算机中的单位:bit - 比特位
1byte-- 字节 = 8bit
1kb-- 千字节 = 1024byte
1mb-- 兆字节 = 1024kb
1gb-- 吉字节 = 1024mb
1tb-- 太字节 = 1024gb
1pb-- 拍字节 =1024tb
生活中的有些值是不变的(比如:圆周率,身份证号码,血型等等)有些值是可变的(比如:年龄,体重,薪资)。不变的值, C语言中用常量的概念来表示,变得值C语言中用变量来表示。
int main()
{
int age = 150;
float weight = 55.5;
char ch = 'c';
}
int global_variable; '全局变量' {
}外部
int main()
{
int global_variable; '局部变量' {
}内部
return 0;
}
例
int var = 100;
int main()
{
int var = 10;
printf("%d\n",var);
return 0;
}
>>>10
由此可见 局部变量与全局变量命名相同时,局部变量优先。
写一个代码求2个整数的和
int main()
{
int a = 0;
int b = 0;
int sum = 0;
scanf("%d %d", &a, &b);
sum = a + b;
printf("sum = %d\n", sum);
return 0;
}
#define MAX 10000
int main()
{
1. 字面常量
3.14;
10;
'a';
"abcdef";
2. const修饰的常变量
const int num = 10;//num就是常变量 - 具有常属性(不能被改变的属性)
num = 20;//err
printf("num = %d\n", num);//10
int arr[10] = {
0};//10个元素
const int n = 10;
int arr2[n] = {
0};//err n是变量的,这里是不行
3. #define 定义的标识符常量
MAX = 20000;//err
int n = MAX;
printf("n = %d\n", n);//10000
}
4.枚举常量
//性别
enum Sex
{
//这种枚举类型的变量的未来可能取值
//枚举常量
MALE = 3,//赋初值
FEMALE,
SECRET
};
int main()
{
// 枚举常量
//可以一一列举的常量
enum Sex s = MALE;
//MALE = 3;//err
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
return 0;
}
“hello world”
这种由双引号引起来的一串字符称为字符串字面值,或者简称字符串。
注意:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算作字符串内容。
#include
#include
int main()
{
//字符数组 - 数组是一组形同类型的元素
//字符串在结尾的位置隐藏了一个\0的字符
//\0是字符串的结束标志
char arr1[] = "abc";
char arr2[] = {
'a', 'b', 'c'};
//求一下字符串的长度
printf("Length of arr1=%d\n", strlen(arr1));
//strlen计算字符串的长度,需要引头文件#include
printf("Length of arr1=%d\n", strlen(arr2));//随机检测到\0,结果为随机值
//打印字符串
printf("arr1=%s\n", arr1);//abc
printf("arr2=%s\n", arr2);//abc乱码
return 0;
}
转义字符 | 释义 |
---|---|
\ ? | 在书写连续多个问号时使用,防止他们被解析成三字母词 |
\‘ | 用于表示字符常量’ |
" | 用于表示一个字符串内部的双引号 |
\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1 - 3个八进制的数字。如:\130 |
\xdd | dd表示2个十六进制数字。如:\x30 |
小练笔:
// 求输出结果
#include
#include
int main()
{
printf("%d\n", strlen("c:\test\328\test.c"));
return 0;
}
结果为14
解析:\t,\32被解析成一个转义字符算作一个字符。八进制中不包含8所以只有\32被转义成一个字符。
int main()
{
//int a = 10; //C++注释风格(推荐)
/*
int b = 0;
*/
// /* */C语言的注释风格 - 不支持嵌套注释
return 0;
}
#include
int main()
{
int a = 0;
printf("你会好好学习吗(1/0)?>:");
scanf("%d", &a);
if (a == 1)
{
printf("好offer\n");
}
else
{
printf("卖红薯\n");
}
return 0;
}
#include
int main()
{
int line = 0;
while (line < 30000)
{
printf("写代码:%d", line);
line++;
}
if (line == 30000)
{
printf("好offer\n");
}
return 0;
}
#include
int main()
{
int a = 0;
int b = 0;
int sum = 0;
printf("请输入两个数:");
scanf("%d %d", &a, &b);
sum = a + b;
printf("%d\n", sum);
return 0;
}
上述代码,写为函数如下
int add(int a, int b)
{
return a + b;
}
int main()
{
int a = 0;
int b = 0;
printf("请输入两个数:");
scanf("%d %d", &a, &b);
int c = add(a, b);
printf("%d\n", c);
return 0;
}
函数的特点:简化代码,代码复用。
定义:一组相同类型的元素的集合
数组是用下标来访问的,arr[0]表示第一个元素,arr[1]表示第二个元素…
若有n个元素,其最大下标为n-1.
数组的使用
#include
int main()
{
int arr[10] = {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
char ch[5] = {
'a', 'b', 'c' };//不完全初始化,剩余的默认为0
for (i = 0; i < 5; i++)
{
printf("%c ", ch[i]);
}
return 0;
}