laputa&totoro
码龄7年
关注
提问 私信
  • 博客:135,715
    社区:43
    135,758
    总访问量
  • 19
    原创
  • 1,419,639
    排名
  • 16
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2018-03-26
博客简介:

aLLLiyyy的博客

查看详细资料
个人成就
  • 获得105次点赞
  • 内容获得10次评论
  • 获得403次收藏
  • 代码片获得238次分享
创作历程
  • 1篇
    2022年
  • 6篇
    2020年
  • 12篇
    2019年
成就勋章
TA的专栏
  • Python
    1篇
  • Java
  • JavaScript
    1篇
  • C语言
    4篇
  • 笔记
兴趣领域 设置
  • 数据结构与算法
    数据结构
  • 移动开发
    kotlinflutterandroid studio
  • 软件工程
    性能优化
  • 学习和成长
    面试
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C语言中的结构体可以声名函数么?

首先应该明确是在C语言里面,而不是在C++里面。然后依次回答,C语言里面不可以声名函数,因为结构体就是一块连续的内存。函数的定义一般在class里面或者全局某个地方。所以,c语言struct的特性,不能声明,定义函数。但是,可以声名函数指针,因为函数指针,其实也是一个变量,在32位机器上就是四个字节,就跟普通的 四字节的int 没有什么区别,只不过描述的类型不一样,一个是整型,一个是函数指针。我们可以在c的struct里面这样定义结构体函数指针。struct student{ char* name;
原创
发布博客 2022.05.03 ·
1757 阅读 ·
0 点赞 ·
0 评论 ·
9 收藏

c++头文件的作用与使用方法以及extern 关键字的作用

cpp的头文件就是以.h结尾的文件。里面可以声明一些方法或者是全局变量。所谓全局变量,就是没有在方法或或者类外部的变量。注意是声明,声明一个变量前面要加上extern 表示它只是声明 具体的定义,赋值,可以在cpp文件中操作。声明一个函数就是只写函数头。也就是没有函数体,大括号就是函数体。为什么不能定义全局变量和函数呢?因为,如果这个头文件被多个cpp文件引用的话,就可能出现LINK1169 错误,找到一个或多个重定义的符号。比如这样,我们在header里面定义了一个全局变量。header.h
原创
发布博客 2020.12.09 ·
991 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

Python参数之self,可变参数*args ,**kwargs

众所周知,定义一个函数需要传进去参数,那,假如参数个数不固定,意思就是定义时候,根本不知道要传递几个参数进去,该怎么办呢?这个时候,可变参数就派上用场了。我们可以使用*args与**kwargs来作为形参,定义函数。*arg的使用def func_1(*kk): print(kk, type(kk))if __name__ == "__main__": func_1(1, 5, 'ops')'''打印结果如下:(1, 5, 'ops') <class 'tuple'&
原创
发布博客 2020.10.31 ·
6367 阅读 ·
15 点赞 ·
1 评论 ·
30 收藏

resource.rar

发布资源 2020.10.11 ·
rar

网页渲染数学公式之KaTeX引入

KaTeX可以排版复杂的数学公式,在网页上直接应用公式文字而不是图片是一个不错的选择。1.首先引入对应KaTeX的css样式,js脚本文件。 <head> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css" integrity="sha384-AfEj0r4/OFrOo5t7NnNe46zW/tFgW6x/bCJG8FqQCEo3+Aro6EYUG4
原创
发布博客 2020.10.03 ·
3251 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

c++通过指针的偏移访问二维数组

int arr[2][2] = { {1,2},{3,4} }; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { cout << *((*(arr + i)) + j) << endl;; } } cout << typeid(*arr).name() << endl;//int [2]通过代码可以看到,通过指针的偏移,然后再通过解引用符号()也可以访问
原创
发布博客 2020.09.05 ·
535 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++迷途指针(dangling pointer)与野指针

1.野指针是指没有初始化的指针,如下:#include<stdio.h>int main(int argc,char * argv[]){ int *p; return (*p&0x7f);}显然,这个指针p没有初始化就使用了,我们称这种指针为野指针(wild pointer);2,迷途指针(悬空指针)(dangling pointer):#include <stdio.h>int main(int argc,char *argv[]){ int *
原创
发布博客 2020.05.08 ·
877 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

C++中的运算符重载概念与注意事项

所谓运算符重载,就是让运算符有特殊的含义。传统的运算符包括但不限于以下几种:1算术运算符(+,-,,/,%,++,–);2逻辑运算符(&&,||,!)3关系运算符(==,!=,>=,<=,>,<)4赋值运算符(=,+=,-=,=,/=,%=,>>=,<<=,&=,|=,^=)注意没有~=5位运算符(&,|,^,~,<<,>>)6杂项运算符(包括取地址符号&,解引用符号*,三目运算符?
原创
发布博客 2020.05.08 ·
353 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

shell 脚本 失败自动重复执行

在我们通过terminal 与linux系统交互的时候,经常会用到一些命令。然而有些命令是耗时操作的,比如我要举例的同步下载命令。我们不可能几个小时守在电脑旁边等着命令执行结束再进行一些操作。更可恨的是,命令有可能执行失败,这时候需要重新执行。我们需要一个能够接收到上一次命令的结果,然后根据结果做相应的处理,比如重新开始命令等等。代码如下#!/bin/bashrepo syncecho "...
原创
发布博客 2019.11.21 ·
4546 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

git config 命令详解

git config 命令主要与git的一些配置有关联的。git config --list这个命令可以列出关于当前git的所有配置信息,命令输出如下所示:http.sslbackend=opensslhttp.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crtcredential.helper=manager...
原创
发布博客 2019.11.14 ·
14175 阅读 ·
0 点赞 ·
0 评论 ·
11 收藏

c 语言中宏参数的字符串化跟宏参数的连接

c语言中的宏有无参数的宏,也有带参数的宏。其实宏就相当与一个字符串模板,然后预处理器在有宏的标志处,把宏展开,说明白点,也就是字符串的替换工作。不过这个工作发生在编译之前,以前一直不理解,感觉c语言中的宏有多高大上,原来只是对你的c代码进行一些字符串的替换工作,替换后,还是c语言,然后才开始编译成汇编等指令。现在说说如何定义一个有参数的宏,比如最简单的宏定义#define MAX(a,b) ...
原创
发布博客 2019.11.13 ·
1592 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

C++命名空间的定义与使用

众所周知std是一个命名空间,它里面可以定义一系常量,变量跟函数,最简单的命名空间的定义如下:namespace Output { int i = 10; const int con = 15; void printStr() { printf("hello"); }}using namespace Output;上面定义了一个Output的命名空间,里面分别有一个常量,变量...
原创
发布博客 2019.11.07 ·
1778 阅读 ·
1 点赞 ·
1 评论 ·
3 收藏

c++成员函数指针的定义与简单使用

在刚接触c++时候,我们会碰到这种操作符号,.* or ->*这两个运算符是什么意思呢?其实就是取一个类的成员变量。当然,在使用成员变量的前提是你得先有成员变量。接下来,我们展示如何定义一个成员变量并且使用它#include "pch.h"#include <iostream>#include <vector>USING_NSclass Perso...
原创
发布博客 2019.11.05 ·
484 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c++用指针创建二维数组

先上一个简单的代码,对比一下普通的声明数组,与用指针声明数组 int a0[10]; for (int i = 0; i < sizeof(a0)/sizeof(*a0); i++) { a0[i] = i; } for (int i = 0; i < sizeof(a0) / sizeof(*a0); i++) { cout << " " <&...
原创
发布博客 2019.11.03 ·
9361 阅读 ·
9 点赞 ·
1 评论 ·
44 收藏

c++ 中函数形参没有变量名

在c++中,有时候会看到这样的函数int add(int,int);这一看,不知道是什么意思,为什么形参没有参数名?正常的情况应该是这样的int add(int a,int b);这是由于没有形参名的函数只用来声明,然而到定义的时候,必须有形参名称。类似这样:int add(int, int);int main(){ cout << add(100, 100...
原创
发布博客 2019.11.03 ·
9501 阅读 ·
19 点赞 ·
2 评论 ·
42 收藏

c结构体中定义的成员指针赋值与结构体指针作为成员函数参数的使用

c语言定义结构体可以直接声明结构体变量的,如下struct Student{char *name;int age;}xiaoming这样以来,我们就定义了一个结构体类型,同时声明了一个结构体变量xiaoming。那么。我们在main函数中怎样对这个结构体进行初始化呢?可以这样int main(){ xiaoming.age = 15; xiaoming.name = (...
原创
发布博客 2019.11.03 ·
3786 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

c++ typedef 关键字与 typedef struct

c++中,经常有一些莫名的数据类型,不像java等,数据类型都是明明白白写出来的,比如 int long char等等。然而c++,可以对数据类型进行重命名,这样,你就可以自己命名你需要的数据类型了。最简单的例子int main(){ typedef int alias; alias i = 100; cout << i << endl; return 0;}...
原创
发布博客 2019.10.24 ·
237 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++成员函数指针的定义与使用

成员函数指针是相对于对象来说的,在说成员函数指针之前,先要明白普通函数指针的定义与使用。用vs先建立一个项目,名称随意,然后在源文件中声明并且定义一个函数,代码如下:#include "pch.h"#include <iostream>using namespace std;int add(int a,int b) { return a + b;}int main()...
原创
发布博客 2019.10.23 ·
1120 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

WIRESHARK基础教程以太帧的分析。

首先应该明白,封装以太帧的位于OSI七层模型的第二层,也就是数据链路层,wireshark可以把完整的以太帧抓起来,我们可以清楚的看到。打开wireshark找到自己ip对应的网卡,点开,随便点一个协议,这里以UDP协议为例子,截图如下上面用红笔写的1,2,3,4分别对应 1:以太帧总信息,2:以太帧头部,3:IP 数据包,4:UDP数据包。他们是有联系的,且看我在下面解释。第一个解释,Fra...
原创
发布博客 2019.10.07 ·
15503 阅读 ·
30 点赞 ·
2 评论 ·
162 收藏

android layerlist 里面的rotate标签得到三角形原理详解

在android 中。有各种各样的drawable。其中,比较常用的drawable有一个LayerDrawable,对应的xml标签为layerlist。里面可以按照先后顺序,放置一个个i的item。就像这样:<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.and...
原创
发布博客 2019.09.22 ·
5340 阅读 ·
2 点赞 ·
3 评论 ·
10 收藏
加载更多