初识C语言——阶段性小结
Posted cxy_zjt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识C语言——阶段性小结相关的知识,希望对你有一定的参考价值。
都是一些大致概括性知识 让我们对c有一个初步认识,
没有详细展开赘述。
一、什么是C语言
二、第一个C语言程序
三、数据类型
四、变量、常量 字符串+转义字符+注释
一、什么是C语言
C语言是一门通用计算机编程语言,广泛应用于底层开发.........
我们将编程比作是一栋大厦,c是地基,要想大厦屹立不倒,地基切忌操之过急!
二、第一个C语言程序
对于大多数人而言是"hello world"
但我希望
#include<stdio.h>
int main() {
printf("我们是最棒的!\\n");
return 0;
}
这是一种自我激励,也是鞭策。
送给大家一句话:欲戴其冠,必承其重!
三、数据类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
//C语言有没有字符串类型?
C 语言虽然没有字符串类型,但是 C语言提是存在字符串这个概念的,也就是字符串常量。
1、char 字符类型
注:表示字符要加单引号 eg:char = 'z'
#include<stdio.h>
int main() {
char w = 'z';
printf("%c\\n", w);
return 0;
}
上述代码只是一个很简单的例子
那么下面一个呢?
#include<stdio.h>
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<stdio.h>
int main() {
char w = 98;
printf("%c\\n", w);
return 0;
}
上述是数字->字符
那么字符到数字呢?
#include<stdio.h>
int main() {
int w = 'a';
printf("%c\\n", w);
return 0;
}
2、整型
处理不同数据的时候需要不同的变量范围。
各个类型的大小都不同
#include<stdio.h>
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<stdio.h>
int main()
{
float a = 5.5;
double b = 6.1;
printf("%f\\n", a);
printf("%f\\n", b);
return 0;
}
通过上面代码我们可以了解到,无论是float 还是double,小数点后面数字位数都相等
但是取几位有效数字怎么做呢?
#include<stdio.h>
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<stdio.h>
int main() {
double a = 18232.321;
printf("%e\\n", a);
return 0;
}
浮点型还有许多其他知识,待博主详细学完后再来更新,目前知识大致的写一下。
四、变量、常量 字符串+转义字符+注释
变量的定义:
char ch = 'w';
int weight = 120;
int salary = 20000;
变量的分类有局部变量,全局变量。
#include <stdio.h>
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<stdio.h>
int main() {
int a = 10;
printf("%d\\n", a);
a = 20;
printf("%d\\n", a);
return 0;
#include<stdio.h>
int main( ){
const a = 10;
printf("%d\\n", a);
a = 20;
printf("%d\\n", a);
return 0;
}
第二个代码无法编译
因为有const 修饰变量指的是 虽然它还是变量,但是它的值是一个常量,无法被更改。(个人理解)
3、//#define的标识符常量
#include<stdio.h>
#define MAX 100
int main() {
printf("%d\\n", MAX);
return 0;
}
4、 //枚举常量演示
enum Sex
{
//枚举这种类型的可能取值 - 就是枚举常量
MALE,
FEMALE,
SECRET
};
#include<stdio.h>
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<stdio.h>
int main() {
char zjt[] = "abcd";//字符串1
char dy[] = { 'a','b','c','d' };//字符串2
char dsg[] = { 'a','b','c','d','\\0' };//字符串3
char dagg[5]= { 'a','b','c','d' };//字符串4
printf("%s\\n%s\\n%s\\n%s\\n", zjt, dy, dagg,dsg);
return 0;
}
我们来分析一下上述代码,仔细观察一下,字符串2与字符串3只相差一个‘\\0'
在字符串中'\\0'表示的是结束输出,所以字符串2在输出abcd后继续在缓存区输出,直到找到’\\0'为止。
而其他三种的正确表示方法都是我目前所了解的 后续如果还有其他方法会在未来的博客中持续更新。
为了让读者加深一步理解——我们可以通过测字符串的长度分析
#include<stdio.h>
#include<string.h>
int main() {
char zjt[] = "abcd";//字符串1
char dy[] = { 'a','b','c','d' };//字符串2
char dsg[] = { 'a','b','c','d','\\0' };//字符串3
char dagg[5]= { 'a','b','c','d' };//字符串4
printf("%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<stdio.h>
int main() {
char arr1[] = "abc";//代码1
char arr2[] = { 'a','b','c' };//代码2
printf("%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<stdio.h>
#include<string.h>
int main() {
char arr[] = "c:\\test\\628\\test.c.ca\\nasm";
printf("%d\\n", strlen(arr));
return 0;
}
在测量字节长度是转义字符算一个字节
注释:1. 代码中有不需要的代码可以直接删除,也可以注释掉
2. 代码中有些代码比较难懂,可以加一下注释文字
C语言风格的注释 /*xxxxxx*/ 缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx 可以注释一行也可以注释多行
第一次写这种博客,还有许多不足之处,但创作不易,还请大家多多支持!
以上是关于初识C语言——阶段性小结的主要内容,如果未能解决你的问题,请参考以下文章