c语言-心得总结
文章平均质量分 79
littesss
这个作者很懒,什么都没留下…
展开
-
define与typedef的区别
1.#define Elemtype int typedef long byte_4define 是宏定义,typedef是类型定义 相当于给变量起别名,两者是有区别的 define 是简单的字符串替换 ,而typedef是真正意义上的类型定义。#define pstr1 char*typedef char* pstr2;假如定义pstr1 s原创 2017-06-02 20:23:35 · 2038 阅读 · 0 评论 -
函数的调用
一:传值和传址 传值:把A的数值传到B,改变B,A不会跟着变,B存的是跟A一样的值;随着函数的结束,局部变量也会被释放。传址:把A的地址传到B,改变B,A同时跟着变,B存的只是A的地址(类似电脑的快捷方式)。对于函数之间传递地址: 传递地址就是把箱子(变量)的地址传递过去, 这时候要注意我们的形参和实参用的是同一个地址, 也就是形参中的箱子中存放的是实参的地址, 这样操作形参就原创 2017-06-22 18:50:10 · 610 阅读 · 0 评论 -
递归
一、什么是递归 目前我找到的对递归最恰当的比喻,就是查词典。我们使用的词典,本身就是递归,为了解释一个词,需要使用更多的词。当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词,可惜,第二个词里仍然有不懂的词,于是查第三个词,这样查下去,直到有一个词的解释是你完全能看懂的,那么递归走到了尽头,然后你开始后退,逐个明白之前查过的每一个词,最终,你明白了最开原创 2017-06-22 20:11:55 · 372 阅读 · 0 评论 -
二维数组的输出
#includeusing namespace std;//最小快的也是一级指针 ,行, 列void fun3(int*arr, int iRows, int iCols){ for (int i = 0; i<iRows; i++) { for (int j = 0; j < iCols; j++) { printf("%4d ", *(arr + i*iCols原创 2017-07-04 17:10:28 · 1461 阅读 · 0 评论 -
蛇形数组
一、蛇形数组 定义x横坐标,y纵坐标,n为几行几列,把数组分为左上半部分(包括对角线)和右下半部分(不包含对角线)左上半部分循环定义k为第几斜排k从0开始,到k=0 (或者y=0(或者x<=k)右下半部分首先要定义一个标识,知道第n行是奇数排还是偶数排,才能推出下一排是奇数还是偶数,假如第n排(也就是对角线斜排)为奇数排,则定义它的flag为1,否则定义它的flag为0,然后实现原创 2017-07-07 11:09:41 · 2021 阅读 · 1 评论 -
c语言中输出字符指针相关问题
一、例如定义一个 char * p = "hello";的字符指针。首先搞清楚在c语言中没有字符串的类型,所以对字符串操作,有两种形式:可以用字符指针(为什么不叫字符串指针,我个人觉得,字符指针针对的是单个字符的操作,即指针操作,所以就叫它字符指针吧。。。),或者字符串数组(这里不在讨论字符串相关问题,前面博客有讨论过)这里的指针变量p,系统会为其重新分配内存,区别字符串数组(不分配内存)原创 2017-05-01 01:41:21 · 24812 阅读 · 0 评论 -
C语言_心得总结_1
1.安装visual studio(微软公司的一款开发工具),安装 MSDN (Microsoft Developer Network)帮助文档。2.头文件中“”和是系统自带头文件在include文件夹中,两者其本质差别是:搜索路径不同“”搜索路径在所建工程下面搜索,而3.#program once,效果等同于#ifndef __xxx_#define __xxx__ ...原创 2017-03-19 11:41:33 · 893 阅读 · 0 评论 -
函数指针与指针函数的区别
1函数指针:大前提是一个指针,指向一个函数的指针int (*p)();函数指针是指向函数的指针变量。 因而"函数指针"本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其原创 2017-08-16 20:17:44 · 4040 阅读 · 0 评论 -
strlen、strcat、strcmp、strcpy函数实现
自我实现strlen() strlcmp() strcat() strcpy() 1.my_strlen()的实现: 2.strcmp()函数的实现 3.strcat() 函数的实现 4.strcpy() 函数的实现原创 2017-04-20 15:54:57 · 541 阅读 · 0 评论 -
负数在计算机中怎样存储
1什么是原码、反码、补码?分为:正数 和负数(包括正浮点数,和负浮点数)规定最高位位符号位正数为0,负数为1(原因下文解释)原码:10进制转换成2进制是原码,只不过正数的原码是本身符号位为0,负数的原码符号位为1(以下篇幅均以单字节为例:10进制1的原码是0000 0001,10进制-1的原码是1000 0001)。反码: 正数的反码是本身,负数的反码是负数的原码0变为1,1变为0原创 2017-04-23 13:30:50 · 47272 阅读 · 12 评论 -
正确理解转义字符\
一. strlen与sizeof的意义 sizeof是C/C++中的一个关键字,不是函数,简单的说其作用就是返回一个对象或者类型所占的内存字节数。strlen()是一个函数,求一个字符串的有效长度,strlen函数的结束条件是遇到\0结束计数。二.用sizeof求一个字符串分为几种情况: A.\后面一般跟的是八进制数如 \000 \377 \378B.\也可跟16进原创 2017-05-27 16:59:26 · 19770 阅读 · 0 评论 -
数组名与指针“没关系”
一、数组名是指针吗?在C语言基础书上我们看到过"我们可以把地址,形象的看成指针",所以地址就是指针,指针就是地址,这句话在某种程度上应该没一点问题问题。但是我们也老是听别人说"数组名就是首元素的地址",所以我们就类比,数组名 = 地址,又因为 地址 = 指针,所以数组名 = 指针,如果你真的这样理解,认为数组名就是指针的话,那你就大错特错,所以"数组名就是首元素的地址" 这句话是有一定的条件的原创 2017-04-24 10:01:26 · 572 阅读 · 0 评论 -
指针与数组、函数、结构体等之间相关问题
指针一:指针1指针:指针就是地址,地址就是指针,指针是虚拟的,地址是真实存在的2.如何判断语句是何种类型: int p; p是基本的整型 int *p; p和*结合说明p是一个指针,类型是int* ,指向是int类型。 int p[5];原创 2017-03-21 17:40:03 · 404 阅读 · 0 评论 -
cin、cin.get()、cingetline()等函数的区别
一.cin 主要几个函数cin()、cin.get()、cin.getline()、cin.good()、cin.clear、cin.ignore; 1. cin------------->接受整型,字符,不接受enter space tab 遇到这些对结束符处理,并保留在缓冲区。(从字符整型开始(而非enter)到E S T接受并保留在缓冲区) 2. cin.get()--原创 2017-03-23 12:23:52 · 708 阅读 · 0 评论 -
结构体总结
一、结构体:不同数据类型的集合(区别数组:同一类型数据的集合)#include #include struct student//struct 是结构体关键字,student是结构标记 struct student结构体类型名字,不会分配空间,类似int ,float { int age;//student 类型结构体的成员 char nam原创 2017-04-02 08:32:06 · 539 阅读 · 0 评论 -
C语言心得_2
1.char类型的 :字符和数字定义变量类型后一定要给变量初始化。#include #include using namespace std; int main(){ char ch = 256+65;//不带''输入数字 是256循环,'是ASCII码,不带''输入字符是错误的输入,带''是字符只能输出末尾一个字符, c原创 2017-03-26 15:14:54 · 437 阅读 · 0 评论 -
数组查找方法
1.数组中查找最大值:方法:定义 int Max_value(int arr[],int n)的函数,定义Max_value = arr[0]; 再去循环n-1次,利用if选择语句找出最大值,并给函数返回最大值,即为所找元素。int Max_value(int arr[], int n){ int Max_value = arr[0]; for(int i = 1;原创 2017-03-27 13:01:00 · 818 阅读 · 0 评论 -
转义字符—后面“跟几位”?
一:1.何为转义字符。转义字符实际就是字符,就是把ASCII码转换成ASICC对应的字符(ASCII 从0~255共256,表示256个字符),我们都知道计算机只识别0101的数字,比如说字符A的ASCII是65转换成二进制0100 0001,字符0是48转换成二进制0011 0000而所有字符最后都是0101代码被计算机识别,加一个转义字符加数字(\48) 表示字符0。二:1.原创 2017-04-12 22:42:52 · 13401 阅读 · 1 评论 -
进制之间转换相关问题
1.什么是进制:进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。 2.为什么要进行进制转换,在计算机中计算机只识别2进制(0101…),所以二进制是计算机的进制单位,而我们人类,一般日常生活中十进制应用最广泛,所以才原创 2017-04-17 11:17:23 · 1089 阅读 · 0 评论 -
const的用法
1.const: 限定符,它是C/C++中的一个关键字,它把一个对象转换成一个常量。 2. C/C++中的区别:在c语言中const为只读变量(实质还是变量,只不过是只读的不能修改其值的),而在c++中 const就是常量。 3.const 对指针的限制 以int *类型的指针的为例进行讲解。 分类3类:分类标准是const在指针运算原创 2017-04-17 16:04:55 · 342 阅读 · 0 评论 -
【转】C语言中 -> 是什么意思?
->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.举个例子:struct Data{ int a,b,c;}; /*定义结构体*/struct Data * p;/*定义结构......转载 2017-05-04 20:52:20 · 214496 阅读 · 40 评论