资讯专栏INFORMATION COLUMN

C语言define和初级指针

wthee / 2200人阅读

摘要:目录定义常量定义宏指针定义常量定义常量定义宏宏可以定义宏函数指针字符串字符有符号的整形单精度浮点型双精度浮点型地址地址的十六进制表示形式指针取出地址,地址是用十六进

define

define定义常量

#define NUM 1000//定义常量int main() {	int a = NUM;	printf("%d/n", a);	return 0;}

define定义宏

int Add(int x, int y) {	int z = x + y;	return z;}//宏-#define可以定义宏#define ADD(X,Y)  ((X)+(Y))int main() {	int a = 10;	int b = 20;	//函数	int sum1 = Add(a, b);	int sum2 = ADD(a, b);//int sum2 = ((a)+(b));	printf("%d/n", sum1);	printf("%d/n", sum2);	return 0;}

指针

%s:字符串%c:字符%d:有符号的整形%f:单精度浮点型%lf:双精度浮点型%p:地址--地址的十六进制表示形式
//指针int main() {	int a = 10;	//printf("%p/n", &a);//取出ade地址,地址是用十六进制表示的	           //&a 的时候,取的是a所占内存中4个字节中第一个字节的地址	int* pa = &a;//pa是整型指针变量	*pa = 20;//*解引用操作符	printf("%d/n", a);	char ch = "w";	char* pc = &ch;	//指针是变量,用来存放变量的地址	return 0;}


打印变量地址:

int main() {	int a = 10;	printf("%p/n", &a);	return 0;}

任何类型的指针变量在32位机器上占4个字节,在64位机器上占8个字节:

int main() {	char ch = "w";	char* pc = &ch;	printf("%d/n", sizeof(pc));	//指针存的是地址,地址在内存中要开辟空间	//32位环境下:指针大小是4字节	//64位环境下,指针大小是8个字节	return 0;}

上面是在32位机器上的运行结果:

32位机器上运行:

int main() {	printf("%d/n", sizeof(char*));	printf("%d/n", sizeof(int*));	printf("%d/n", sizeof(double*));	printf("%d/n", sizeof(float*));	printf("%d/n", sizeof(short*));	return 0;}


64位机器上运行:

int main() {	printf("%d/n", sizeof(char*));	printf("%d/n", sizeof(int*));	printf("%d/n", sizeof(double*));	printf("%d/n", sizeof(float*));	printf("%d/n", sizeof(short*));	return 0;}


总结:

  1. 指针变量寸的是变量的地址
  2. int* pa = &a;&a表示取地址,int*表示整形的指针变量
  3. 32位机器上的指针占4个字节,64位机器上的指针占8个字节

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/122561.html

相关文章

  • C语言学习笔记—P12(扫雷游戏<初级>+图解+题例)

    目录  前言:●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!                                                                       ——By 作者:新晓·故知                                                                       ...

    lykops 评论0 收藏0
  • c语言中常见的一些坑一些细节(建议收藏)

    摘要:博主接下来将会整理一些语言中常见的问题和坑,再看博主解释的时候可以自己思考一下变量的声明和定义有什么区别答变量的定义为变量分配地址和存储空间,变量的声明不分配地址。指针操作超过了变量的作用域范围如返回局部变量的地址。 博主接下来将会整理一些语言中常见的问题和坑,再看博主解释的时候可以自己...

    jhhfft 评论0 收藏0
  • [译] 给PHP开发者的PHP源码-第一部分-源码结构

    摘要:另一个说明我叫它做宏。你可以为函数定义写一个宏事实上,就是这么做的,但我们会在后面的文章中深入了解这个。我想说的是,宏允许在预处理编译时使用更简单的代码。或者说头文件定义了在文件中可以被其他文件看到的函数,包括预处理宏。 文章来自:http://www.hoohack.me/2016/02/04/phps-source-code-for-php-developers-ch 原文:ht...

    wenzi 评论0 收藏0
  • Linux C语言结构体-学习笔记

    摘要:语言结构体简介前面学习了语言的基本语法特性,本节进行更深入的学习。下节课结构体结构体的声明与定义之前的学习中,使用的变量类型大多是一些比较简单的变量类型。匿名结构体类型。 Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习。 预处理程序。 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 逻辑运算符: ...

    孙淑建 评论0 收藏0
  • C语言(宏,内存,地址,指针,解引用)

    摘要:宏可以定义宏函数有符号的整形单精度浮点型双精度浮点型地址地址的进制表示形式的时候,取出时所占内存中个字节中第一个字节的地址取出的内存地址数值称为指针是一个指针变量,指向的是一个类型指针变量是一种变量 #include #define NUM 100 int Add(int x,int y)...

    Vultr 评论0 收藏0

发表评论

0条评论

wthee

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<