c语言中指针变量怎么理解?怎么用?
4个回答
展开全部
指针变量是一个变量,它保存的是另一个变量的内存地址。你如果知道了这个指针变量保存的值,就可以知道它所指向变量的内存地址,于是就可以间接访问到那一个变量。
定义:指针变量类型 *指针变量名1, *指针变量名2, ... ;
例如:
int main(void)
{
int *p; /*定义*/
int a;
p = &a; /*把a的地址赋值到p中*/
*p = 1; /*间接访问a*/
return 0;
}
把指针作为函数的参数传递,可以使函数可以访问函数外部的变量,例如:
void swap(int *a, int *b)
{
int c;
c = *a; *a = *b, *b = c;
}
指针也可以用于传递数组,数组名本身就是一个指针:
void func(int a[], int n)
{ ..... }
指针还可以指向指针,指向结构体(struct),指向数组
int **p; /*指向int指针*/
struct XXX *p;
int (*p)[100]; /*指向一个int[100]数组,括号不可少*/
定义:指针变量类型 *指针变量名1, *指针变量名2, ... ;
例如:
int main(void)
{
int *p; /*定义*/
int a;
p = &a; /*把a的地址赋值到p中*/
*p = 1; /*间接访问a*/
return 0;
}
把指针作为函数的参数传递,可以使函数可以访问函数外部的变量,例如:
void swap(int *a, int *b)
{
int c;
c = *a; *a = *b, *b = c;
}
指针也可以用于传递数组,数组名本身就是一个指针:
void func(int a[], int n)
{ ..... }
指针还可以指向指针,指向结构体(struct),指向数组
int **p; /*指向int指针*/
struct XXX *p;
int (*p)[100]; /*指向一个int[100]数组,括号不可少*/
展开全部
指针变量是一个存地址的变量,赋值是只能传地址(跟int型只能赋值整型一样的)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针变量是一个变量,它的值是另外一个变量在内存中的地址,如:
int a = 5; 用5初始化变量a
int* ptr = &a;用变量a的地址初始化指针ptr
int a = 5; 用5初始化变量a
int* ptr = &a;用变量a的地址初始化指针ptr
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你会不会汇编指针其实就是寄存器间接寻址
我觉的这样解释最直接容易理解,当然是要你会汇编的话,不懂的话,指针其实是个变量只不过这个变量的值是地址
我觉的这样解释最直接容易理解,当然是要你会汇编的话,不懂的话,指针其实是个变量只不过这个变量的值是地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询