🎥 岁月失语唯石能言的个人主页
🔥个人栏专:秒懂C语言
⭐若在许我少年时,一两黄金一两风
目录
前言
一、指针变量和地址
1.1 取地址操作符(&)
1.2 指针变量和解引用操作符(*)
1.2.1 指针变量
1.2.2 如何拆解指针类型
1.2.3 解引用操作符
1.3 指针变量的大小
二、指针变量类型的意义
2.1指针的解引用
2.2 指针+-整数
2.3 void* 指针
总结
前言
一、指针变量和地址
1.1 取地址操作符(&)
# include <stdio.h>int main (){int a = 10 ;return 0 ;}
1. 0x006FFD702. 0x006FFD713. 0x006FFD724. 0x006FFD73
#include <stdio.h>
int main()
{
int a = 10;
&a;//取出a的地址
printf("%p\n", &a);
return 0;
}
1.2 指针变量和解引用操作符(*)
1.2.1 指针变量
ex:
#include <stdio.h>
int main()
{
int a = 10;
int* pa = &a;//取出a的地址并存储到指针变量pa中
return 0;
}
1.2.2 如何拆解指针类型
int a = 10 ;int * pa = &a;
char ch = 'w' ;char * pc = &ch;
1.2.3 解引用操作符
#include <stdio.h>
int main()
{
int a = 100;
int* pa = &a;
*pa = 0;
return 0;
}
1.3 指针变量的大小
#include <stdio.h>
//指针变量的⼤⼩取决于地址的⼤⼩
//32位平台下地址是32个bit位(即4个字节)
//64位平台下地址是64个bit位(即8个字节)
int main()
{
printf("%zd\n", sizeof(char*));
printf("%zd\n", sizeof(short*));
printf("%zd\n", sizeof(int*));
printf("%zd\n", sizeof(double*));
return 0;
}
二、指针变量类型的意义
2.1指针的解引用
//代码1 #include <stdio.h>
int main()
{
int n = 0x11223344;
int* pi = &n;
*pi = 0;
return 0;
}
//代码2 #include <stdio.h>
int main()
{
int n = 0x11223344;
char *pc = (char *)&n;
*pc = 0;
return 0; }
2.2 指针+-整数
#include <stdio.h>
int main()
{
int n = 10;
char* pc = (char*)&n;
int* pi = &n;
printf("%p\n", &n);
printf("%p\n", pc);
printf("%p\n", pc + 1);
printf("%p\n", pi);
printf("%p\n", pi + 1);
return 0;
}
2.3 void* 指针
#include <stdio.h>
int main()
{
int a = 10;
int* pa = &a;
char* pc = &a;
return 0;
}
#include <stdio.h>
int main()
{
int a = 10;
void* pa = &a;
void* pc = &a;
*pa = 10;
*pc = 0;
return 0;
}
总结
指针变量的大小和类型无关,只要是指针变量,在同⼀个平台下,大小都是⼀样的。文章来源:https://www.toymoban.com/news/detail-763875.html
文章来源地址https://www.toymoban.com/news/detail-763875.html
到了这里,关于【C语言】——认识指针变量和地址,以及指针变量类型的意义的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!