
C/C++
权艺
这个作者很懒,什么都没留下…
展开
-
C语言数组指针和指针数组详解
C语言数组指针和指针数组详解一.指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是存储指针的数组的简称。二.数组指针:首先它是一个指针,它指向一个数组。它是指向数组的指针的简称。int *p1[10];int (*p2)[10];...原创 2022-02-07 19:19:32 · 429 阅读 · 0 评论 -
C语言基础知识之define宏定义表达式,undef,内存对齐,a和&a的区别,数组知识点,int (*)[10] p,二维数组参数与二维指针参数,函数指针数组,常见的内存错误及对策
一.用define宏定义表达式1.定义一年有多少秒:#define SEC_A_YEAR 60*60*24*365//上述描述不可靠,没有考虑到在16位系统下把这样一个数赋给整型变量的时候可能会发生溢出#define SEC_A_YEAR (60*60*24*365)UL2.#undef#undef是用来撤销宏定义的#define PI 3.1415926code...#undef PI//接下来的代码无法使用宏PI//也就是说宏的生命周期从#define开始到#undef结束。原创 2022-02-07 19:14:09 · 1133 阅读 · 0 评论 -
C++学习笔记之C++对C的扩展
一.类型增强1.把一个const类型的指针赋给非const类型的指针,C语言中可以通过,但是C++中则编不过去。C语言中表达式通常不能作为左值的,即不可被赋值,c++中某些表达式是可以赋值的。#include <stdio.h>int main(int argc, char *argv[]){ const int a = 100; //a = 90; //erro 1 int *p = &a; //C语言中const类型的指针可以赋给非const类原创 2021-01-09 16:57:42 · 183 阅读 · 0 评论 -
互斥锁Mute AutoLock的使用
互斥锁Mute AutoLock的使用一.Mute用途主要用于多线程访问同一临界资源时,保证访问的互斥性。同一时间只能有一个线程访问该临界资源。对应系统源码实现:inline Mutex::Mutex(int type, const char* name) { if (type == SHARED) { //type如果是SHARED,则表明这个Mutex支持跨进程的线程同步。 //以后我们在Audio系统和Surface系统中会经常见到这种用法。转载 2020-11-15 15:45:10 · 1040 阅读 · 0 评论 -
property_get和property_set使用方法
property_get和property_set使用方法原创 2020-11-15 15:21:05 · 11474 阅读 · 0 评论 -
C语言的行指针和列指针
一、定义二维数组<1>定义方式数据类型 数组名[行数][列数];例如:int a[3][4]; =====>3行4列C语言对二维数组采用的这种特殊的定义方式,使得二维数组可以被看作一种特殊的一维数组:它的元素又是一个一维数组。例如:上图中的a可以看出是一个一维数组,他有3个元素:a[0],a[1],a[2].每个元素又包含四个一维数组。a[0]----------->a[0][0] a[0][1] a[0][2] a[0][3]a[1]------原创 2020-10-25 13:10:53 · 5584 阅读 · 2 评论 -
C语言中a和&a
C语言中a和&a一.a这里我们先看看数组名代表的是什么,这个概念可能大家有所误解,认为数组名代表的就是数组的地址,当然,数组名代表的是一个地址,但是关键是,通过这个地址,我们关注的是它能取得多大空间的数据的值。例如对于一个char 类型的地址,我们能够取得一个字节的值,对于一个int型的地址,我们能够取得4个字节的值。好了,下面我来谈谈类型的理解。1.C语言中的类型char a ; =====> a是char类型short b; =====> b 是short类型int原创 2020-10-25 13:05:33 · 14291 阅读 · 6 评论 -
C语言之指针数组
C语言之指针数组一.指针数组1.简介简介:本质是一个数组,但是里面存放的数据都是指针,即数组元素都是指针。它是“存储指针的数组”的简称。2.内容格式数据类型 * 数组名[元素个数];例如:int a[4];“[]“的优先级比我们的”"的优先级高,所以[]与我们的4先结合,形成了我们的数组的定义,数组名叫做a,我们平时定义数组的格式如下:int b[10];------>数组名b------>数组里面元素的类型 int 类型而指针数组 aint * a[10];原创 2020-10-25 12:57:25 · 2472 阅读 · 1 评论 -
C语言基础知识之二维数组,void类型,空结构体,大小端模式,typedef,预处理
C语言基础知识一一.二维数组连续存储,即内存地址是连续的。#include <stdio.h>int main(int argc, char *argv[]){ int a[2][2]; int i, j; a[0][0] = 1; a[0][1] = 2; a[1][0] = 3; a[1][1] = 4; //第二种赋值方式,定义加初始化 int b[2][2] = {1,2,3,4}; int c[2]原创 2020-10-18 16:44:43 · 682 阅读 · 0 评论 -
C语言之柔性数组
C语言之柔性数组一.柔性数组在含柔性数组的结构体中的最后一个元素是未知大小的数组。#include<stdio.h>typedef struct _FlexibleArray{ int i; int array[];}FlexibleArray;int main(){ printf("the struct size is %d\n",sizeof(FlexibleArray));//结果为4}我们为柔性数组分配空间后#include<stdi原创 2020-10-14 08:31:37 · 236 阅读 · 0 评论 -
C/C++中static关键字的使用
C/C++中static关键字的使用一.修饰变量1.修饰局部变量即在函数体中定义的变量,只能在这个函数中使用了,同一个文档中的其他函数用不了。并且即使这个函数执行完成之后,这个局部静态变量的值还是不会被销毁的,函数下次调用依然有效。2.修饰全局变量仅限于变量被定义的文件中使用,其他的文件即使使用extern也无法使用静态全局变量。并且其作用域其实就是从定义之处开始,到文件结尾处结束。在定义之处前面也无法使用该变量的。#include <stdio.h>static int j;原创 2020-10-10 21:28:13 · 185 阅读 · 0 评论 -
C/C++编程规范
C/C++编程规范一.编写可重入函数时,应注意局部变量的使用,如编写C/C++语言的可重入函数时,应使用auto即缺省态局部变量或寄存器变量。编写C/C++语言的可重入函数时,不应使用static局部变量,否则必须经过特殊处理,才能使函数具有可重入性。static局部变量相当于全局变量,如果两个进程同时访问该函数则会导致错误。二.编写可重入函数时,若使用全局变量,则应通过关中断,信号量(即P,V操作)等手段对其加以保护。如果对所使用的全局变量不加以保护,则此函数就不具有可重入性,即当多个进程调用此函原创 2020-10-10 21:27:31 · 416 阅读 · 0 评论 -
C/C++可变参数的使用详解
C/C++可变参数的使用详解一.#的使用定义:#就是用来提取生成字符串的。#include <stdio.h>//#就是用来提取生成字符串的#define P(A) printf("%s:%d\n",#A,A)int main(int argc, char *argv[]){ int a = 1, b = 2; P(a); P(b); P(a+b); printf("Hello World!\n"); return 0;}输出原创 2020-08-14 23:50:43 · 563 阅读 · 0 评论