首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

c语言中typedef的几种用法,你会了吗?

CHAR; 第二种:就是我们在stm32里面结构体定义的时候经常会看到(标准库操作): 今天我们要讲的typedef用法,平时大家一般可能都没怎么注意到,这里给大家总结一下,以便下次特别是在读linux...,然后再main函数里面使用了const PINT b =&a,并且改变了a的值,但是奇怪的是,为啥没有报错,这是见了鬼吗(因为PINT是int *的别名嘛,所以const PINT b 应该是const...其实这里就是陷阱了,这里不能这样按照常规的逻辑思维来看理解这个,我们应该把const PINT b=&a看成int * const b=&b,就能理解这里为啥不会报错了,哈哈哈。...下面把PINT的位置调换到const的前面来,用法和这个一样。...#include typedef int *PINT; int main(void) { int a=23; const PINT b=&a;

41630

c语言中typedef的几种用法,你会了吗?

今天我们要讲的typedef用法,平时大家一般可能都没怎么注意到,这里给大家总结一下,以便下次特别是在读linux内核代码的时候(或者其它地方的代码),不要懵逼了,看不懂(到时候和我一样到处查博客,当然自己亲手获取的知识才是真正为自己所有...---- 这里你会看到,有一个报错,这个错误很好理解,不足为怪,但是上面的typedef定义的int *类型的指针,取了一个别名叫PINT,然后再main函数里面使用了const PINT...b =&a,并且改变了a的值,但是奇怪的是,为啥没有报错,这是见了鬼吗(因为PINT是int *的别名嘛,所以const PINT b 应该是const int * b=&a,那不是应该报错嘛,可却没有报错...下面把PINT的位置调换到const的前面来,用法和这个一样。...#include typedef int *PINT; int main(void) { int a=23; const PINT b=&a;

54910
您找到你想要的搜索结果了吗?
是的
没有找到

指针变量的传值和传址

来源:公众号(c语言与cpp编程) 1 引言 举个例子:在func函数退出后,指针pInt所指的内容*pInt为 12 #include  //公众号:C语言与CPP编程 int func...(pRes == NULL)     pRes = new int(12);//分配新的内存空间给指针pRes,并赋值      return 0; } int main () {     int *pInt... = NULL;     int val = func(pInt);     printf("%d\n",*pInt);                                            ...在main函数中,定义了指针pInt,调用func函数,把pInt作为参数传入func函数中。结果*pInt并不是 12。... = NULL;     int val = func(pInt);     printf("%d\n",*pInt);        return 0; } 2 传值、传引用区别和联系 传值:实参拷贝传递给形参

2.7K40

typedef和define具体的具体差别

都为指向int的指针,typedef为int* 引入了一个新的助记符 这也说明了为什么以下观点成立 //QunKangLi(维护成本与程序猿的创造力的平方成正比) typedef int * pint...; #define PINT int * 那么: const pint p ;//p不可更改,但p指向的内容可更改 const PINT p ;//p可更改,可是p指向的内容不可更改。...pint是一种指针类型 const pint p 就是把指针给锁住了 p不可更改 而const PINT p 是const int * p 锁的是指针p所指的对象。...请看上面第一大点代码的第三行: typedef (int*) pINT;以及以下这行:#define pINT2 int* 效果同样?实则不同!...实践中见差别:pINT a,b;的效果同int *a; int *b;表示定义了两个整型指针变量。而pINT2 a,b;的效果同int *a, b;表示定义了一个整型指针变量a和整型变量b。

48710

C语言之预处理命令与用typedef命名已有类型

但它并不实际分配内存空间,实例像:   typedef    int       INT;   typedef    int       ARRAY[10];   typedef   (int*)   pINT...请看上面第一大点代码的第三行:   typedef    (int*)      pINT;   以及下面这行:   #define    pINT2    int*   效果相同?实则不同!...实践中见差别:pINT a,b;的效果同int *a; int *b;表示定义了两个整型指针变量。而pINT2 a,b;的效果同int *a, b;表示定义了一个整型指针变量a和整型变量b。 1....Typedef int * pint; #define PINT int * Const pint p;//p不可更改,p指向的内容可以更改,相当于 int * const p; Const...PINT p;//p可以更改,p指向的内容不能更改,相当于 const int *p;或 int const *p; pint s1, s2; //s1和s2都是int型指针 PINT s3,

1.6K90
领券