初识C语言——阶段性小结(一)
都是一些大致概括性知识 让我们对c有一个初步认识,
没有详细展开赘述。
一、什么是C语言
二、第一个C语言程序
三、数据类型
四、变量、常量 字符串+转义字符+注释
一、什么是C语言
C语言是一门通用计算机编程语言,广泛应用于底层开发.........
我们将编程比作是一栋大厦,c是地基,要想大厦屹立不倒,地基切忌操之过急!
二、第一个C语言程序
对于大多数人而言是"hello world"
但我希望
#include
int main() {printf("我们是最棒的!\n");return 0;
}
这是一种自我激励,也是鞭策。
送给大家一句话:欲戴其冠,必承其重!
三、数据类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
//C语言有没有字符串类型?
C 语言虽然没有字符串类型,但是 C语言提是存在字符串这个概念的,也就是字符串常量。
1、char 字符类型
注:表示字符要加单引号 eg:char = 'z'
#include
int main() {char w = 'z';printf("%c\n", w);return 0;
}
上述代码只是一个很简单的例子
那么下面一个呢?
#include
int main() {char w = 'zjt';printf("%c\n", w);return 0;
}
还是输出 “z”吗?

因为在x86平台上,数据是以little-endian 的形式排列的,低位字节放在内存的低地址,高位字节放在内存的高地址。我们看'1234',从左到右从1到4,然而在计算机中存放的格式是从0x04到0x01,就是说'1234'的低位4存放在计算机的内存低地址位,'1234'的高位1存放在内存的高地址位,所以当把'1234'给变量a时,系统把内存中的地址中存放的4给a,其余的全部不要了。
ASCII码的打印
#include
int main() {char w = 98;printf("%c\n", w);return 0;
}

上述是数字->字符
那么字符到数字呢?
#include
int main() {int w = 'a';printf("%c\n", w);return 0;
}

2、整型
处理不同数据的时候需要不同的变量范围。
各个类型的大小都不同
#include
int main() {printf("%d\n", sizeof(char));printf("%d\n", sizeof(int));printf("%d\n", sizeof(long));printf("%d\n", sizeof(long long));printf("%d\n", sizeof(float));printf("%d\n", sizeof(double));printf("%d\n", sizeof(long double));
}

至于整形的其他本质不同 博主会在后续的文章中探讨 这里只是对自己一个月自学的简单小结。
3.浮点型
常见 float与double后期还会学习其他的浮点类型 。在这不做过多阐述
二者的区别主要是精度表示不一样float的类型至少能表示六位有效数字,double类型至少能表示视为有效数字,但若不加特殊说明,c编译器会直接把float类型转化成double类型。
#include
int main()
{float a = 5.5;double b = 6.1;printf("%f\n", a);printf("%f\n", b);return 0;
}

通过上面代码我们可以了解到,无论是float 还是double,小数点后面数字位数都相等
但是取几位有效数字怎么做呢?
#include
int main()
{float a = 2.2;double b = 2.4;printf("%.3f\n", b);printf("%f\n", a);printf("%.2f\n", a);printf("%.1f\n", a);printf("%.3f\n", a);printf("%.4f\n", a);return 0;
}

可以很清晰的看出“.Xf “那么小数点后就是几位有效数字
用%e打印指数记数法的浮点数
#include
int main() {double a = 18232.321;printf("%e\n", a);return 0;}
浮点型还有许多其他知识,待博主详细学完后再来更新,目前知识大致的写一下。
四、变量、常量 字符串+转义字符+注释
变量的定义:
char ch = 'w';
int weight = 120;
int salary = 20000;
变量的分类有局部变量,全局变量。
#include
int global = 2019;//全局变量
int main()
{int local = 2018;//局部变量//下面定义的global会不会有问题?int global = 2020;//局部变量printf("global = %d\n", global);return 0;
}

上面的局部变量global变量的定义其实没有什么问题的!
当局部变量和全局变量同名的时候,局部变量优先使用
常量
有如下四种:1、字面常量 eg:3.14
100
‘abc’ 等
2、const修饰的常变量
#include
int main() {int a = 10;printf("%d\n", a);a = 20;printf("%d\n", a);return 0;

#include
int main( ){const a = 10;printf("%d\n", a);a = 20;printf("%d\n", a);return 0;
}

第二个代码无法编译
因为有const 修饰变量指的是 虽然它还是变量,但是它的值是一个常量,无法被更改。(个人理解)
3、//#define的标识符常量
#include
#define MAX 100int main() {printf("%d\n", MAX);return 0;
}
4、 //枚举常量演示
enum Sex
{//枚举这种类型的可能取值 - 就是枚举常量MALE,FEMALE,SECRET
};
#include
int main() {printf("%d\n", MALE);printf("%d\n", FEMALE);printf("%d\n", SECRET);return 0;
}

//注:枚举常量的默认是从0开始,依次向下递增1的
字符串:用双引号引起来 eg:”aj“ ”sad“ ”dada“等
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容(即不用敲)
#include
int main() {char zjt[] = "abcd";//字符串1char dy[] = { 'a','b','c','d' };//字符串2char dsg[] = { 'a','b','c','d','\0' };//字符串3char dagg[5]= { 'a','b','c','d' };//字符串4printf("%s\n%s\n%s\n%s\n", zjt, dy, dagg,dsg);return 0;
}
我们来分析一下上述代码,仔细观察一下,字符串2与字符串3只相差一个‘\0'
在字符串中'\0'表示的是结束输出,所以字符串2在输出abcd后继续在缓存区输出,直到找到’\0'为止。
而其他三种的正确表示方法都是我目前所了解的 后续如果还有其他方法会在未来的博客中持续更新。
为了让读者加深一步理解——我们可以通过测字符串的长度分析
#include
#include
int main() {char zjt[] = "abcd";//字符串1char dy[] = { 'a','b','c','d' };//字符串2char dsg[] = { 'a','b','c','d','\0' };//字符串3char dagg[5]= { 'a','b','c','d' };//字符串4printf("%s\n%s\n%s\n%s\n", zjt, dy, dagg,dsg);printf("%d\n%d\n%d\n", strlen(zjt),strlen(dy),strlen(dsg));return 0;
}

#include
int main() {char arr1[] = "abc";//代码1char arr2[] = { 'a','b','c' };//代码2printf("%s\n%s\n", arr1, arr2);return 0;
}

我们可以通过监视器观察到 代码1虽然没有敲‘\0' 但实际上是输入了\0的
通过这个就大致可以理解上面字符串长度了
转义字符:
转义字符顾名思义就是转变意思。
转义字符 释义
\? 在书写连续多个问号时使用,防止他们被解析成三字母词
\' 用于表示字符常量
' \“ 用于表示一个字符串内部的双引号 \\ 用于表示一个反斜杠,防止它被解释为一个转义序列符。 \a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd
ddd表示1~3个八进制的数字。 如: \130 X
\xdd dd表示2个十六进制数字。 如: \x30 0
我们可以做一个趣味性的题目
测试:c:\test\628\test.c.ca\nasm的长度
上代码
#include
#include
int main() {char arr[] = "c:\test\628\test.c.ca\nasm";printf("%d\n", strlen(arr));return 0;}

在测量字节长度是转义字符算一个字节
注释:1. 代码中有不需要的代码可以直接删除,也可以注释掉
2. 代码中有些代码比较难懂,可以加一下注释文字
C语言风格的注释 /*xxxxxx*/ 缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx 可以注释一行也可以注释多行
第一次写这种博客,还有许多不足之处,但创作不易,还请大家多多支持!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
