C语言指针定义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言指针定义相关的知识,希望对你有一定的参考价值。
参考技术A(1)指针变量定义的格式:
类型标识符 *变量名; 如:int *point;
注意:在定义int point;的时候 ,加粗部分的 不是取值符,而是修饰point是一个指针变量,如何确定point指向什么类型的变量呢,需要进行下一步:看非加粗部分,int则表示point指向int类型变量或保存int类型变量的地址。
(2)指针变量的初始化,先来看个实例:
说明:
表示该变量的类型是一个指针变量,指针变量名是p1而不是 p1;
如果在同一行定义多个指针变量应该是:int *p1, *p2;而不是int p1, p2或者 int p1, p2;
给指针变量初始化有两种方式:
在定义时初始化,如int *p_2 = &b;
先定义再初始化,如int *p1; p1 = &a;
*p1是p1所指向的变量的值;
一个指针变量只能指向同一个类型的变量。
(3)对于指针变量的两个运算符“*”与“&”:
& 取地址运算符 //&a就代表a的地址(指的是a所在内存空间的起始地址)
C 语言数组 ( 数组指针 | 数组指针定义 | 使用 数组类型* 定义数组指针 )
总结
typedef int(ArrayType)[3];
ArrayType *p = NULL;
一、使用 数组类型* 定义数组指针
数组类型指针 就是 定义一个指针 , 指向数组首地址 ;
使用 数组类型* 定义数组指针 ,
首先 , 定义数组类型 别名 ,
typedef int(ArrayType)[3];
然后 , 使用别名类型 , 声明数组变量 ,
ArrayType array2 = 0;
最后 , 声明一个指针 , 将 array2 变量地址赋值给该指针 , 指针指向的数据类型为 int[3] 数组类型的变量 array2 ;
ArrayType *p = NULL;
p = &array2;
验证上述 定义的数组指针 :
为 数组元素 赋值 ,
// 为数组赋值
int i = 0;
for(i = 0; i < 3; i++)
array2[i] = i + 1;
使用 数组指针 , 打印数组元素内容 :
// 使用 数组指针 访问数组中的值
for(i = 0; i < 3; i++)
printf("%d\\n", (*p)[i]);
二、完整代码示例
代码示例 :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
// 指针数组 , 数组元素是指针
char *array = "12", "ab", "34";
// 数组指针 , 使用指针变量指向数组
// 使用 数组别名 定义数组指针
// 首先 , 定义数组类型 别名
typedef int(ArrayType)[3];
// 然后 , 使用别名类型 , 声明数组变量
ArrayType array2 = 0;
// 最后 , 声明一个指针 , 将 array2 变量地址赋值给该指针
// 指针指向的数据类型为 int[3] 数组类型的变量 array2
ArrayType *p = NULL;
p = &array2;
// 为数组赋值
int i = 0;
for(i = 0; i < 3; i++)
array2[i] = i + 1;
// 使用 数组指针 访问数组中的值
for(i = 0; i < 3; i++)
printf("%d\\n", (*p)[i]);
// 命令行不要退出
system("pause");
return 0;
执行结果 :
以上是关于C语言指针定义的主要内容,如果未能解决你的问题,请参考以下文章