![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
c语言
c语言
八十岁老将
嘿嘿
展开
-
c语言学习笔记(十五:指针与const
const关键字只读性质的关键字,const修饰的变量就不能改变。1)const char *p;或char const *p;这两种修饰方法是一样的,我们经常使用这种方法。都是修饰的char字符,它代表的是字符串的内容不可以更改。此时的指针依旧可以指向其它的内存,但是通过指针修改它指向的值就是不可以的了。2) char * const p;或 char * p const;这两种修饰方法是一样的,我们经常使用这种方法。都是修饰的指针,它代表的是指针指向的地址不可以改变,而地址里面的内容是原创 2020-12-20 18:07:42 · 117 阅读 · 0 评论 -
c语言学习笔记(十四:指针二
1.指针的算术运算char a[20]; int *ptr=(int *)a; //强制类型转换并不会改变a 的类型 ptr++; 指针ptr 的值加上了sizeof(int),由于地址是用字节做单位的,故ptr 所指向的地址由原来的变量a 的地址向高地址方向增加了4 个字节。2.&和*这里&是取地址运算符,*是间接运算符。&a 的运算结果是一个指针,指针的类型是a 的类型加个*,指针所指向的类型是a 的类型,指针所指向的地址是a 的地址。*p 的结果是p .原创 2020-12-20 17:52:53 · 102 阅读 · 0 评论 -
c语言学习笔记(十三:指针
1.指针的类型把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。(1)int *ptr;//指针的类型是int*(2)char *ptr;//指针的类型是char*(3)int **ptr;//指针的类型是int**(4)int (*ptr)[3];//指针的类型是int(*)[3](5)int *(*ptr)[4];//指针的类型是int*(*)[4]2.指针所指向的类型指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。把指针声明语句中的指针名字和名字左边.原创 2020-12-20 15:09:46 · 102 阅读 · 0 评论 -
c语言学习笔记(十二:位运算实现加减乘除四则运算
1.加法不考虑进位情况下,位的异或运算跟*求’和’*的结果一致:异或 1^1=0 1^0=1 0^0=0求和 1+1=0 1+0=1 0+0=0位的与运算跟*求’进位‘*的结果也是一致:位与 1&1=1 1&0=0 0&0=0进位 1+1=1 1+0=0 0+0=0思想:计算a+bstp1:算出两数不考虑进位的值sum,和只考虑进位的值carrystp2:如果进位值不为零,就a=sum,b=carry,然后重复stp1,直到carry==0int Add(int原创 2020-12-20 12:08:01 · 1061 阅读 · 1 评论 -
c语言学习笔记(十一:运算符
C语言运算符优先级优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右–()圆括号(表达式)/函数名(形参表)–.成员选择(对象)对象.成员名–->成员选择(指针)对象指针->成员名–2-负号运算符-表达式右到左单目运算符~按位取反运算符~表达式++自增运算符++变量名/变量名++–自减运算符–变量名/变量名–原创 2020-12-20 11:12:51 · 127 阅读 · 1 评论 -
c语言学习笔记(十:逻辑结构
1.分支选择if (条件1) { 语句块1 } else if (条件2) { 语句块2 } else { 语句块3 }Created with Raphaël 2.2.0start条件1语句块1条件2语句块2语句块3yesnoyesno2.循环do while(想到条件) for(想到次数)1)for循环循环中的“表达式1(初始化条件)”、“表达式2(循环条件)”和“表达式3(自增或自减)”都是可选项,都可以省略(但分号;必须保留)。原创 2020-12-20 11:01:25 · 363 阅读 · 2 评论 -
c语言学习笔记(九:资源类型修饰符
1.static1)static全局变量与普通的全局变量 全局变量+static = 静态的全局变量,这两者在存储方式上都是静态存储方式,区别在于非静态全局变量的作用域是整个源程序。静态全局变量只在定义该变量的源文件内有效。static局部变量和普通局部变量 静态局部变量:把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。在函数体中定义时,只能在这个函数中使用,即使这个函数运行结束了,这个静态变量的值在函数下次使用时,仍然能用。static函数与普通函数stati原创 2020-12-20 10:42:23 · 124 阅读 · 1 评论 -
c语言学习笔记(八:struct、union、enum、typedef
自定义数据类型1.struct1)结构体的声明声明结构体变量;结构体所占内存大小是其成员所占内存之和。struct 结构体类型名{//结构体类型名可省略,匿名结构体 成员表;//可以有多个 成员函数;//可以有也可以没有}结构变量量表 [={}];//同时定义多个变量“,”隔开,最后的“;”不能漏。可以在声明的同时初始化。 访问成员的一般形式是: 结构变量名 . 成员名 初始化对结构体的成员逐个赋值stu1.num = 18;stu1.score = 90.原创 2020-12-20 09:58:10 · 357 阅读 · 1 评论 -
c语言学习笔记(七:关键字
1.关键字C语言保留的一些有特殊作用的词语、编译器预先定义的字符串1. signed:声明有符号类型变量2. unsigned:声明无符号类型变量3. char:声明字符变量signed char(-128 ~ 127)和unsigned char(0 ~ 255)型变量只能用于数值的存储与使用。...原创 2020-12-19 18:57:19 · 68 阅读 · 1 评论 -
c语言学习笔记(六:预定义宏
预定义宏意义_LINE_行号_FILE_源文件的名称_FUNCTION_函数名_DATE_源文件的编译时刻的日期,“mm:dd:yyy”_TIME_源文件的编译时间,“hh:mm:ss”_STDC_如果今前编泽器符合ISO标准,那么该宏的值为1,否则未定义...原创 2020-12-19 17:49:57 · 167 阅读 · 1 评论 -
c语言学习笔记(五:预处理运算符
预处理运算符意义#字符串化运算符##连接运算符#@字符化运算符1.#在类函数宏(function-like macro)的替换部分中,“#”符号用作一个预处理运算符,它可以把语言符号(token)转化为字符串。例如,如果 x 是一个宏参量,那么 #x 可以把参数名转化为相应的字符串。该过程称为字符串化。#include <stdio.h> #define PSQR(x) printf("The square of " #x " is %...原创 2020-12-19 17:39:53 · 134 阅读 · 1 评论 -
c语言学习四:预处理指令
预处理指令意义用法#define宏定义#define PCchar char*#undef撤销定义过的宏\#undef PCchar#if、#else、#elif、#endif条件编译,true就编译、关心宏定义,也关心宏真假\#if()……#elif()……#else……#endif#ifdef、#else、#endif条件编译,有定义宏就编译#ifdef DEBUG……#else……#endif#line语句#line来重新设定__LIN...原创 2020-12-17 21:23:23 · 141 阅读 · 2 评论 -
c语言学习三:vscode远程开发
#####1.远程主机安装ssh-server服务器端用apt-get install openssh-server -y安装#####2.本地主机安装ssh-clientopenssh-windows下载提取码:1111#####3.安装vscodevscode官网#####4.安装Remote Development插件搜索Remote Development#####5.通过ctrl+shift+p打开设置Remote-SSH-Settings,设置Remote.SSH:Show.原创 2020-12-17 14:19:06 · 366 阅读 · 0 评论 -
c语言学习二:编译过程
1.预编译命令gcc -o a.i -E 001.c 把伪指令转换为实际指令-o 作用是指定输出文件的名字#define a b#条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif等#include 头文件加入到编译的文件中一些符号处理如file local 等等;2.编译命令:gcc -o a.s -S a.i把预编译好的文件逐条转化为汇编语言经过预编译得到的输出文件中,只有常量;如数字、字符串、变量的定义,以及c语言的关键字,如main,if,e原创 2020-12-16 21:00:46 · 94 阅读 · 0 评论 -
c语言学习一:原码、反码、补码、进制转换
1.字节1B = 8 b2.存放计算机中存放数据是以补码的形式存放的3.机器数数字在计算机三的二进制表现形式、可以理解为原码4.真数机器数对应的10进制数,例如 机器数:01101对应的真数就是+11015.原码计算机中对二进制的表示方式,首位表示正负,0正,1负6.反码为了解决负数的加法问题引入了反码,正数的反码是本身,负数的反码按位取反7.补码解决1111111和00000000都表示零时对每次跨零的运算产生一个单位的误差,引入了补码。正数的补码是其本身,负数的补码等于她本.原创 2020-12-15 15:10:54 · 698 阅读 · 0 评论