
C语言
文章平均质量分 51
C语言中需要知道的要点
小阳先生的宝库
你所浪费的今天,是许多人奢望的明天;你所厌恶的现在,是未来的你回不去的曾经。
展开
-
Switch的一些用法
简简单单原创 2022-12-26 14:31:19 · 389 阅读 · 0 评论 -
参数和指针
1.普通变量进行数值交换#include <stdio.h>void swap(int a,int b);void swap(int a,int b){ int temp; printf("in swap交换前: a=%d,b=%d\n",a,b); temp=a; a=b; b=temp; printf("in swap交换后:a=%d,b=%d\n",a,b);}int main(){ int a=1,b=2; printf("in main交换前:a=%d,原创 2022-05-02 16:29:15 · 501 阅读 · 0 评论 -
常量指针与指针常量
之前面试遇到了一道题,这也就是相当于记录一下而已。你觉得答案如何呢?1.指针常量意思:它是一个常量,但是通过指针修饰了一下。表达:int * const p#include <stdio.h>int main(){ int a,b; int *const p=&a; *p=1; p=&b;//这里是错误的 printf("%d\n",*p);//这个毫无疑问可以打印出来1 printf("%p\n",p);//这个可以打印出来什么? return原创 2022-05-02 00:22:08 · 778 阅读 · 2 评论 -
二级指针与数组之间的运算
解析图片:num里的值为520p里面存放的是num的地址解引用*p就是求出num中存放的数据pp里面存放的是p的地址解引用*pp就是求出p中的数据,也就是num的地址再解引用**pp就是求出p地址中存放的数据,也就是num的数据代码1:(二级指针)#include <stdio.h>int main(){ int num=520; int *p=# int **pp=&p; printf("num:%d\n",num); prin.原创 2022-05-01 17:45:03 · 445 阅读 · 0 评论 -
计算数组A的大小与地址
这是当时面试时遇到的一道题,我觉得要是都能答对了,那么对C语言的掌握程度已经可以达到工作的水平了。1.先看题已知数组A(基于32位MCU)的地址为0x80000000,数组为A[100]。求:sizeof(A)sizeof(A[0])sizeof(&A)sizeof(&A[0])&A+1&A[0]+1其实不想写结果的,但是一方面内容太少,第二方面就是还想自己留着看,那还得写2.解析考察数组的大小考察数组中一个元素的大小考察指针的大小,你知道&原创 2022-04-30 23:07:57 · 1324 阅读 · 0 评论 -
指针数组和数组指针
1.如何进行分别?根据运算符的优先级来判断是数组指针还是指针数组。2.指针数组例如:int * p1[5]为指针数组。[ ]的优先级为1大于 * 的优先级2,所以它是个数组。数组里的每个成员都是指针,所以叫做 指针数组。结论:指针数组是个数组,每个数组元素存放一个指针变量。#include <stdio.h>int main(){ char *p1[6]={ "张明阳", "郭恒", "杨浩", "赵世凯", "吕冠潮",原创 2022-04-30 21:31:09 · 428 阅读 · 0 评论 -
指针的基础运算(1)
#include <stdio.h>#include <string.h>int main(){ char a[]="ming yang"; int b[5]={1,2,3,4,5}; float c[5]={1.1,1.2,1.3,1.4,1.5}; double d[5]={1.1,1.2,1.3,1.4,1.5}; int *p=b; printf("*p=%d,*p+1=%d,*p+2=%d\n",*p,*p+1,*p+2); printf...原创 2022-04-30 15:52:43 · 340 阅读 · 0 评论 -
#define SQUARE(n) n*n?
标题里这样定义求取n的平方,你们觉得对吗?有没有优化的地方呢?其实第一眼看上去并没有什么不对,但是其实真的有很多优化的地方。在程序里调用一下。优化一:假如这样调用呢?SQUARE(3+2); //结果会是25嘛?此时我们需要这样定义#define SQUARE(n) (n)*(n)优化二:如果这样调用呢?12/SQUARE(2) //结果会是3吗?这时我们只需要再加一个括号就可以了。#define SQUARE(n) ((n)*(n))优化三但是在不同环境下编译器原创 2022-03-29 13:58:08 · 623 阅读 · 0 评论 -
玩一下链表
1.链表的结构2.创建一个链表3.代码#include <stdio.h>#include <stdlib.h>typedef struct lianbiao{ int date; struct lianbiao *pnext;}link;link *pnew;//新节点link *phead;//头节点link *ptemp;//临时节点int count=1;void creat(void);void add原创 2022-01-12 16:43:00 · 308 阅读 · 0 评论 -
防痴呆的指针操作(太烧脑了)
第一题int main(){int a[5] = { 1, 2, 3, 4, 5 };int *ptr = (int *)(&a + 1);printf( “%d,%d”, *(a + 1), *(ptr - 1));return 0;}//最终结果为 2 和 5;原创 2021-11-23 18:05:55 · 564 阅读 · 0 评论 -
C语言中的优先级
运算优先级按从高到低依次:留一道头痛的题#include "stdio.h"int main(){ int x=4,y1,y2,y3;// y1=(++x);// y2=(++x)+(++x); y3=(++x)+(++x)+(++x); printf("y3=%d\n",y3); return 0;}//你们觉得y3等于多少?百分之80人都会答错。你以为上面的题会了?#include <stdio.h>int main(){ int i=5,j=5,p.原创 2021-10-09 11:07:50 · 213 阅读 · 0 评论 -
C语言中基本概念与常用函数
1.什么是预编译,何时需要预编译?总是使用不经常改动的大型代码体。程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。2.局部变量能否和全局变量重名?局部变量可以与全局变量同名,局部变量会屏蔽全局变量。3.如何引用一个已经定义过的全局变量?可以用extern关键字,外部就可以调用这个变量了。4.全局变量是否可以被定义在多个.C文件中吗?可原创 2021-10-09 09:35:55 · 469 阅读 · 0 评论 -
大小端模式
内存的读写永远从低地址开始读/写大端模式:指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式类似于把数据当作字符串顺序处理。地址由小向大增加,而数据从高位往低位放;小端模式:指数据的高位保存在内存的高地址中,而数据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。代码#include <stdio.h>int main(void){ int原创 2021-09-02 13:48:06 · 141 阅读 · 0 评论 -
Strlen与Sizeof的区别
strlen 是函数,sizeof 是运算符。strlen 测量的是字符的实际长度,以’\0’ 结束。而sizeof 测量的是字符的分配大小。比如:> char str[20] = "hello"; > printf("strlen: %d\n", strlen(str)); //strlen:5> printf("sizeof: %d\n", sizeof(str)); //sizeof: 203.但是在子函数中,size of 会把从主函数中传进来的字符数..原创 2021-09-02 11:40:00 · 189 阅读 · 0 评论 -
最简单的商家管理系统(小白)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-07-27 14:34:36 · 1050 阅读 · 1 评论