我使用的编译器版本是vs2013 vsc++6.0这些比较旧的编译器上面的情况就不知道了。初识系列每一篇博客会是目录的三个章节大概每天更新或者是两天一更。我学习的地方在哔哩哔哩是看比特鹏哥的视频学习,为此我很感谢他。
生活中的有些值是不变的(比如:圆周率,性别(?),身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)。
不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
int age = 150;
float weight = 45.5f;
char ch = ‘w‘;
局部变量
全局变量
#include <stdio.h>
int global = 2019;//全局变量 --定义在代码块({})之外的变量
int main()
{
int local = 2018;//局部变量 --定义在代码块内部({})
//下面定义的global会不会有问题?
int global = 2020;//局部变量和全局变量的名字最好不要相同容易产生误会生成bug
//当局部变量和全局变量名字相同的时候,局部变量优先。
printf("global = %d\n", global);
return 0;
}
全局变量和局部变量可以同时存在,但是尽量不要容易产生误会,当局部变量和全局变量相同的时候局部变量优先。
变量的使用
#include <stdio.h>
int main()
{ //计算两个数的和
int num1 = 0;
int num2 = 0;
//输入数据 --使用输出函数scanf
int sum = 0;
//C语言语法规定,变量要定义在当前代码块的最前面否则会出现错误
printf("输入两个操作数:>");
scanf("%d %d", &a, &b);//取地址符(&)作用就是把输入的两个值放到内存中相应的地址处。
//scanf是输出函数是C语言提供的一种函数,在运行的时候有的编译器会报错或者是显示不安全,建议使用vs提供的scanf_s不建议使用这个函数因为这样子会导致代码的跨平台性和可移植性价格低
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
}
使用时先定义变量,所有的变量定义在最前面。
PS:
作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下以下几种:
字面常量
const 修饰的常变量
#define 定义的标识符常量
枚举常量
#include <stdio.h>
//举例(性别)
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
3.14;//字面常量
1000;//字面常量
const float pai = 3.14f; //const 修饰的常量
const int n = 10//n是变量但是还有常属性,所以我们说n是常变量本质上还是个变量
pai = 5.14;//ok?
#define MAX 100 //#define的标识符常量
return 0;
}
"hello world.\n"
由双引号引起的一串字符我们称之为字符串字面值,或者简称字符串。
注:字符串结束的标志是哟个\0的转义字符没在计算字符串长度的时候\0是结束标志不算做字符串的内容
include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出‘\0‘的重要性)
int main()
{
char arr1[] = "bit";
char arr2[] = {‘b‘, ‘i‘, ‘t‘};
char arr3[] = {‘b‘, ‘i‘, ‘t‘, ‘\0‘};
printf("%s\n", arr1);//bit
printf("%s\n", arr2);//bit+乱码
printf("%s\n", arr3);//bit
return 0;
}
通过调试可以看到arr1中实际上就已经默认了有\0这个结束标志所以说"abc" -- ‘a‘,‘b‘,‘c‘\0
在arr2中加入0就能达到1和3的效果相当于加入了一个\0
\0是结束标志如果说没有结束标志就会在后面打印出一些随机值就会出现arr2的效果。
数据在计算机上是以二进制存储的,存储这些字符的时候任何一个字符都有相应的数字与它对应,每一个字符都编了一个号,编号对应字符的值。这些值是通过ASCII编码,这些值叫做ASCII码值。
如果说要计算字符串长度对于arr1的数组来说有三位但是对于arr2数组来说会出现一个随机值这个随机值的大小与系统运行到多少位会出现0有关系因为出现0是结束的标志。
顾名思义转义字符就是要转变意思
转义字符 | 注释 |
---|---|
\? | 在书写连续多个问号时使用,防止他们被解析成三字母词 |
\‘ | 用于表示字符常量‘ |
\" | 用于表示一个字符串内部的“ |
\| 用于表示一个反斜杠,防止它被解释为一个转义序列符。 | |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1~3个八进制的数字。 如: \130 X |
\xdd | dd表示2个十六进制数字。 如: \x30 0 |
#include <stdio.h>
int main()
{
//问题1:在屏幕上打印一个单引号‘,怎么做?
//问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
printf("%c\n", ‘\‘‘);
printf("%s\n", "\"");
return 0;
}
//程序输出什么?
#include <stdio.h>
int main()
{
printf("%d\n", strlen("abcdef"));
// \32被解析成一个转义字符 -- \32是个八进制数字代表32作为8进制代表的那个数字所对应的ASCII编码字符。
printf("%d\n", strlen("c:\test\32\test.c"));
return 0;
}
\就是用来转义其他字符的
#include <stdio.h>
int add(int x, int y)
{
return x+y;
}
/*C语言风格注释
int Sub(int x, int y)
{
return x-y;
}
*/
int main()
{
//C++注释风格
//int a = 10;
//调用Add函数,完成加法
printf("%d\n", Add(1, 2));
return 0;
}
c++的注释风格在c语言中也使用
C语言注释风格/xxxxxxxx/缺陷是不能嵌套
c++的注释风格是//xxxxxxxxxxx可以注释一行也可以注释多行
c注释中/开头只要是捕捉到/就默认注释结束。语法上会形成问题建议使用c++的注释风格。
快捷键:ctrl+k+c是注释
ctrl+k+u取消注释
注释的作用就是方便自己方便别人读懂。
#include <stdio.h>
int main()
{
int coding = 0;
printf("你会去敲代码吗?(选择1 or 0):>");
scanf("%d", &coding);
if(coding == 1)//判断语句
{
prinf("坚持,你会有好offer\n");
}
else//选择语句
{
printf("放弃,回家卖红薯\n");
}
return 0;
}
if else两个语句体现一种逻辑关系,构成选择。
生活中有些事情要一直做重复做就是一种循环。
那C语言中如何实现循环呢
1.while语句
2.for语句
3.do...while语句
//while循环语句
#include <stdio.h>
int main()
{
printf("加入比特\n");
int line = 0;
while(line<=20000)
{
line++;
printf("我要继续努力敲代码\n");
}
if(line>20000)
printf("赢取白富美\n");
return 0;
}
程序运行出来会一直不停重复一个过程直到达到一个预期的结果这就是循环。后面两个后面会讲,先不做介绍,今天就先更新这么多
原文:https://blog.51cto.com/15006979/2583239