C语言初识 一
视频来源于b站
更博只是为了充当 学习笔记…无盗用之意
1.写c语言代码:
1.创建工程
2.创建文件
3.执行 Ctrl + F5
#include "stdio.h"
int main()
{
printf("hello world/n");
return 0;
}
4.设置链接器:
5. 设置行号:
6.
//include 包含一个叫“stdio.h 的文件”
//std - 标准 stadanard input output
#include "stdio.h"
//int 表示整型的意思
//main前面的int表示 main函数调用返回一个整型值
int main()//主函数 - 程序的入口、有且仅有一个
{
printf("hello world/n");//这里完成任务、在屏幕上输出hello world、函数-print function-printf -打印函数
//库函数 - C语言本身提供给我们使用的函数
// 别人的东西 - 打招呼
// #include
return 0;//返回“0”
}
2.数据类型:
// char - 字符数据类型
// short - 短整型
// int - 整型
// long 长整型
// long long 更长整型
// float 单精度浮点数
// double 双精度浮点数
//%c - 打印字符格式数据
//%d - 打印整型十进制数据
//%f - 打印浮点数字 - 打印小数
//%lf - 打印double型 数据
//%p - 以地址的形式打印
//%x -打印十六进制
//%o ....
int main()
{
char ch = 'A';
printf("%c\n",ch);
return 0;
}
3.
int main()
{
short age = 20;//向内存申请2个字节 = 16bit ,用来存放20
printf("%d\n",age);
return 0;
}
4.变量:
4.1 定义:
int age =150;
float weight =45.5f;
char ch = "w";
4.2 局部变量 / 全局变量 :
全局变量:定义在 {… } 之外的变量;
局部变量:定义在 {… } 之内的变量;
//局部变量和全局变量的名字建议不要相同 - 容易误会
//局部变量和全局变量 名字重复时 ,局部变量有限
int main()
{
//计算2个数的和
int num1 = 0;
int num2 = 0;
int sum =0;
// 输入数据 - 使用输入函数
scanf("%d%d",&num1,&num2);// & 取地址符号
//C语言要定义在当前代码段的最前面;
sum = num1 + num2;
printf("sum = %d\n",sum);
return 0;
}
6.变量的作用域和生命周期:
6.1
作用域:这个“变量” ,哪里可以用,那里不可以用
int main()
{
{ int num =0;}
printf("num = %d\n",num);
return 0;
}
6.2
6.3
生命周期:从变量创建 到 销毁的一个时间段
1.局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束
2.全局变量的生命周期:整个程序的生命周期
3.忽略警告
代码前面加上一句话:
#define _CRT_SECURE_NO_WARNINGS 1
//加在源文件的第一行
2. 这些库函数 都被认为是不安全的
//scanf
//strcpy
//strlen
//strcat
//...
//不安全的
//strcpy_s
4.自动的加抬头(小技巧)
1.先找到 安装VC 的绝对路径:
D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcprojectitems
2.找到文件 newc++file.cpp:
3.打开 编辑 保存:
5.常量:
1.常量的种类:
1.字面常量:
直接写出来的…比如:3、4 、5 …
2.const修饰的常变量:
3.#define 定义的标识符常量:
4.枚举常量:
enum Sex
{
MALE,
FEMALE,
SECRET
};//MALE FEMALE SECRET -- 枚举常量
6.字符串 + 转义字符 +注释:
1.字符串:
2.存放字符串:
1. char数组 存放 字符串:
#include <stdio.h>
int main()
{ char arry[] = "abcd";//char 类型的数组 存放字符串
printf("%s\n",arry);
return 0;
}
2. 打印的结果不一致 进行调试:
#include <stdio.h>
int main()
{ char arry[] = "abcd";//char 类型的数组 存放字符串
char arry1[] = {'a','b','c','d'};
printf("%s\n",arry);
printf("%s\n",arry1);
return 0;
}
3. 补0 起到“\0”结束符的作用:
4.结果一致:
5字符串定义.
6.输出字符串长度:
arry1 “\0” 不算长度
arry2 中没有“\0” ,有随机数填充,所以长度增加了
则答案是:3 和 随机值
7.转义字符(转变原来的意思):
8.strlen():
printf("%c\n",'\x61');// x61 十六进制的 61 对应于 97, 即“a”
3. \0、0、“0”的区别:
7.注释:
1. “\”
2.“/* */”
3.多行注释:
ctrl + k + c >>> 多行注释
ctrl + k + u >>> 多行取消注释
8.条件语句:
#include <stdio.h>
#include <string.h>
int main()
{
int input = 0 ;//存放输入的变量input
printf("加入比特\n");
printf("你要好好学习吗?(1/0):");
scanf("%d",&input);// 1/0
if(input == 1)
printf("好offer\n");
else
printf("卖红薯\n");
}
int main()
{
int line = 0;
printf("加入比特\n");
while(line<20000)
{
printf("敲一行代码:%d\n",line);
line ++;
if(line>=20000)
printf("好offer\n");
}
9.函数
1. int ADD(int x,int y)
能够实现 同一功能的函数…
int ADD(int x,int y)
{
int z =x+y;
return z;
}
int main()
{
int a=10;
int b =10;
int sum =0;
sum = ADD(a,b);
}
2.求最大值的函数:
第一种在main()函数里直接写:
int main()
{
int num = 1;
int num1 = 2;
if(num>num1)
{
printf("最大值是:%d\n",num);
}
else
printf("最大值是:%d\n",num1);
return 0;
}
第二种调用子函数:
int max(int x,int y)
{
if(x>y)
return x;
else
return y;
}
int main()
{ int num1 = 1;
int num2 = 2;
int zui = 0;//找一个zui 去接收返回来的最大值;
zui = max(num1,num2);
printf("%d\n",zui);
return 0;
}
10.数组
1.数组的基本定义:
int main ()
{ // 定义数组
int arry[10] = {1,2,3,4,5,6,7,8,9,10};
printf("%d\n",arry[4]);
}
int main ()
{ // 定义数组
int arry[10] = {1,2,3,4,5,6,7,8,9,10};
int i = 0;
printf("%d\n",arry[4]);
while(i<10)
{
printf("%d\n",arry[i]);
i++;
}
}
2. int arry 的含义:
int arry 中 ,int定义的是 数据中 数据的类型,数组自己有自己的类型;
11.操作符
1.算术操作符:
“+” “-” “*” “/” “%” 加减乘除 取余
2.移位操作符
“>>” “<<” 右移和左移
3.位操作符
“&” “|” “^” 与 或 异或
异或:二进制位 相同,则为0 / 二进制位 相异,则为1
4.赋值操作:
a = a + 10 / a += 10
…
a -= 20 、a &= 20 …//复合赋值符
5.单目操作符(一个操作数)
双目操作符(两个操作数)
三目操作符(三个操作数)
! 逻辑取反
…
5.1 计算数组大小:
数组总大小 / 每个元素大小
12.size of ( ):
1.示例:
2.数组中 有几个元素:
13. “~” 按二进制取反:
1.代码:
int main()
{
int a = 0;//4个字节,32bit 00000000 00000000 000000000 000000000
int b =~a;// 11111111 11111111 11111111 11111111
printf("%d\n",b);
return 0;
}
2.解析:
a 不应该是 11111111 11111111 11111111 11111111