
C语言
Vencent Kim
好好的活,记录每一份情感和想法,每一个行为,并思考为什么,不断优化自己
展开
-
C语言入门(一)之写在前面
学习方法:1. 不要依赖视频教程、多做上机练习、多看官方文档、敲代码验证案例2. 遇到问题,首先自行google和stackoverflow,需要学会搜索引擎使用技巧3. 抓住重点,不会的先放放,记下来,先继续进度。4. 练习一定要自己思考去做,想5-10分钟想不出来,才去看答案解析5. 注意作息,积极锻炼(身体最重要,其次是心情)6. 不要为了看书而看书,或者为了看视频教...原创 2018-10-04 23:48:07 · 279 阅读 · 0 评论 -
C语言入门(十三)之二分查找
#include <stdio.h>#include <time.h>int findKey(int nums[], int key, int length);int findKey2(int nums[], int length, int key);int findKey3(int nums[], int length, int key);int main...原创 2018-10-21 22:26:39 · 155 阅读 · 0 评论 -
C语言入门(十四)之位运算、循环、数组练习
进制查表:#include <stdio.h>void printfBinary(int value);void printfBinary2(int value);void printOct(int value);void printfHex(int value);void printfHex2(int value);void printfOct2(int valu...原创 2018-10-21 22:34:34 · 180 阅读 · 0 评论 -
C语言入门系列总结一
看老师讲课太慢了,慢到足以失去对C语言学习热情。还是自己看源码,调试源码高效些,而且源码里面有注释,看起来更快。原创 2018-10-21 22:42:39 · 178 阅读 · 0 评论 -
C语言入门(十六)之字符串
字符串的基本概念如何定义字符串变量, 由于字符串是同一种类型的数据组成, 并且是有序的。而数组就是用于存储很多同一种类型的有序数据, 所以可以使用数组来保存字符串。注意: 字符串变量和普通的字符数组有一定的区别。C语言规定, 字符串必须以\0结尾(作为字符串的结束符号), 所以字符串变量的元素个数比字符数组的元素个数多一个 \0char str1[] = "lnj";cha...原创 2018-10-23 22:17:40 · 414 阅读 · 0 评论 -
C语言入门(十七)之指针的基本概念
如何定义指针变量 普通变量: 数据类型 变量名称; 指针变量: 数据类型 * 变量名称; 数据类型 : 说明将来指针变量能够保存什么类型的变量的地址 注意: 指针变量是什么类型, 那么将来就只能保存什么类型变量的地址, 例如: 指针变量是int类型, 那么将来就...原创 2018-10-23 22:37:39 · 142 阅读 · 0 评论 -
C语言入门(廿一)之static、extern关键字
局部变量 概念: 局部变量就是定义在函数, 代码块和函数形参列表中的变量, 我们就称之为局部变量 作用范围: 从定义的那一行开始一直直到遇到大括号结束或者遇到return为止 特点: 相同作用域范围内不能出现同名的局部变量 不同作用域范围内出现同名的局部变量, 内部的局部变量会覆盖外部的局部变量注意: 局部变量没有固定的初始化值, 如果没有对局部变量进行...原创 2018-10-26 07:33:37 · 132 阅读 · 0 评论 -
C语言入门(廿二)之预处理指令、宏、条件编译、文件包含、typedef、const
预处理指令什么是预处理指令:在我们的文件翻译成0和1之前做的操作我们称之为预处理指令。一般情况预处理指令都是以#号开头的。宏定义的格式不带参数的宏定义:#define 宏名 值宏定义的作用: 会在程序翻译成0和1之前, 将所有宏名替换为 宏的值 宏定义在什么时候替换 源代码 --> 预处理 -->汇编 -->二进制 -->...原创 2018-10-26 22:42:03 · 256 阅读 · 0 评论 -
C语言入门(十八)之指针、字符串、函数
如何利用指针操作数组 int ages[3] = {1, 3 , 5}; ages[0] = 998; printf("ages[0] = %i\n", ages[0]); int *p = ages; // int *p = &ages[0]; &ages[0] == ages printf("p = %p\n", ...原创 2018-10-24 23:23:11 · 324 阅读 · 0 评论 -
C语言入门(十九)之结构体
太晚了(11点半了),明天继续结构体数组: 是用于保存一组相同类型的数据结构体: 是用于保存一组不同类型的数据// 1.定义结构体类型 struct Person {// char name[20]; char *name; int age; double height; }; // 2.定...原创 2018-10-24 23:27:50 · 231 阅读 · 0 评论 -
C语言入门系列总结
前后花了六天的时间,把C语言"入了个门",之所以是双引号的入门,因为一些认为比较重要、不是特别好理解的知识点,虽然当时理解了,但是印象不深,所以决定还是放慢节奏,今天把前面的总结一下,知识二次加工,提取出重要的内容,后面再去找开源项目通过项目进一步学习和巩固基础知识。sizeof是运算符,用于计算数据类型所占的存储空间 数组遍历的写法// 动态计算数组的元素个数 int leng...原创 2018-10-27 13:24:09 · 279 阅读 · 0 评论 -
C语言入门(十二)之选择-冒泡排序
#include <stdio.h>void selectSort(int nums[], int length);void printArray(int nums[], int length);//void swap(int v1, int v2);void swap(int nums[], int i, int j);void bubbleSort(int nums[...原创 2018-10-21 22:06:33 · 196 阅读 · 0 评论 -
C语言入门(十一)之数组与函数、排序查找初次接触
数组名作为函数的参数传递, 传递的是数组的地址。因为数组名就是数组的地址 &number = &number[0] == number。如果数组作为函数的形参, 元素的个数可以省略。void change2(int values[2]);void change2(int values[]);//数组作为形参可以省略元素个数void change2(i...原创 2018-10-21 22:04:20 · 724 阅读 · 0 评论 -
C语言入门(十)之数组的定义、初始化、遍历、注意点
数组的定义和初始化先定义再初始化int scores[5];注意: 不建议使用变量定义数组, 如果使用了变量定义数组, 作为数组的元素个数, 不初始化的情况下是随机值, 如果初始化会直接报错int num2 = 10;int scores4[num2] = {11, 12};依次将{}中的每一个值赋值给数组中的每一个元素并且从0开始赋值也称之为数组的初始化(完全初...原创 2018-10-21 19:39:23 · 2577 阅读 · 0 评论 -
C语言入门(十五)之二维数组
二维数组数组中的每一个元素又是一个数组, 那么这个数组就称之为二维数组。元素类型 数组名称[一维数组的个数][每个一维数组的元素个数];元素类型 数组名称[行数][列数]; 元素类型: 说明二维数组中每个一维数组存储什么类型的数据一维数组的个数: 说明二维数组有多少个元素每个一维数组的元素个数 : 说明二维数组中每一个一维数组的元素个数char names[2]...原创 2018-10-22 22:30:27 · 324 阅读 · 0 评论 -
C语言入门(二)之变量、printf位宽和保留位数、scanf多值输入、占位符、scanf结束符\n
变量的定义、初始化、格式化输出#include <stdio.h>int main(int argc, const char * argv[]) { float floatValue;//定义变量 floatValue = 10.1f;//初始化(第一次赋值) printf("%f\n",floatValue); return 0;}变量...原创 2018-10-20 10:18:13 · 4194 阅读 · 1 评论 -
C语言入门(三)之运算符、sizeof运算符、if表达式
类型转换、类型提升#include <stdio.h>void test();int main(int argc, const char * argv[]) { // 1.类型转换 /* // int 占用4个字节 double 占用8个字节 // 只是相同类型的数据才能进行运算, 隐式类型转换 将小类型转换为大类型, 然后再进行运算 ...原创 2018-10-20 22:29:46 · 509 阅读 · 0 评论 -
C语言入门(四)之switch、循环语句
switch格式switch格式: switch (条件表达式) { case 整数: // case可以有一个或多个 语句; break; case 整数: // case可以有一个或多个 语句; break; default: 语句; break; }...原创 2018-10-20 22:13:45 · 7697 阅读 · 0 评论 -
C语言入门(五)之函数、递归
函数的定义#include <stdio.h>/* 函数的定义格式: 返回值类型 函数名称(形参列表) { 函数体; // 语句; ... } *//* 初学者如何定义函数: 应该有4个确定: 1.确定函数名称(给函数起一个有意义的名称, 让调用者一看到名称就知道这个函数是干什么的) 1.1函数是标示符的一种 , 遵守规则 : 26个字母 ...原创 2018-10-20 22:29:09 · 210 阅读 · 0 评论 -
C语言入门(六)之include、多文件开发
include基本概念#include <stdio.h> // 告诉系统printf函数是存在的, 告诉系统printf函数的格式(声明printf函数)// include的作用, 是将include右边的文件拷贝到当前文件中int main(int argc, const char * argv[]) { // include指令不一定要写在文件的头...原创 2018-10-20 22:43:22 · 833 阅读 · 0 评论 -
C语言入门(二十)之枚举
C语言中,枚举就是专门用于表示几种固定类型的取值。枚举的本质就是基本数据类型, 就是整形。枚举和结构体一样, 要想定义枚举类型变量, 那么必须先定义枚举类型。枚举类型定义的格式 enum 枚举类型名称 { 取值, };// 1.定义枚举类型 enum Gender { male = 9, // 男 默认情况下, ...原创 2018-10-25 20:58:31 · 297 阅读 · 0 评论 -
C语言入门(七)之进制、位运算、左移右移
十进制、八进制、十六进制的表示和输出#include <stdio.h>int main(int argc, const char * argv[]){// 1.默认就是10进制 int num = 12;// 2.在前面加上一个0就代表八进制 int num1 = 014; // %d是以十进制的方式输出一个整数 ...原创 2018-10-21 15:09:44 · 3497 阅读 · 0 评论 -
C语言入门(八)之变量的存储细节
#include <stdio.h>int main(int argc, const char * argv[]) { // 变量为什么要有类型? 每种类型占用的内存空间不一样 int 4, char 1 double 8 // 只要定义变量, 系统就会开辟一块存储空间给我们的变量存储数据, 内存寻址是从大到小 // 越先定义的变量, 内存地址越大 ...原创 2018-10-21 15:49:15 · 156 阅读 · 0 评论 -
C语言入门(九)之char、类型说明符
#include <stdio.h>int main(int argc, const char * argv[]) { /* // 研究的问题: char类型的变量在内存中是如何存储的? // char 1个字节 int num; char charValue; charValue = 'a'; // 计算机智能识别0和1...原创 2018-10-21 18:03:44 · 1419 阅读 · 0 评论 -
Clion下同时编写多个main函数及思考
Clion下如果有多个main函数,编译时会报错“`main'被多次定义”,如下图:出现这种情况是因为我们在CMakeLists.txt没有进行设置可以同时存在多个main函数。我在Clion下建立了两个.c文件,分别为1.1.c;main.c。CMakeLists.txt中默认显示是这样:进行修改: 这里解释一下:add_executable是用于添加可执行程序的...原创 2018-12-17 09:34:03 · 4481 阅读 · 5 评论