首页 > 软件 > int a,*p=&a;

int a,*p=&a;

软件 2024-04-02

int a,*p=&a; 为什么是对指针赋值?

指针变量也是一种变量,它与普通变量的区别是他只能存放一个地址。而普通变量是直接存放变量的值。 而通常把指针变量简称为指针。二者没有区别。 所以说,int *p=&a,是对指针变量p赋值,也可以说成对指针p赋值。 有什么问题请留言。

在c语言中,int *p,a; *p=&a,和p=&a有什么区别?

#include
intmain()
{
int*p,a=0xAA;//声明int指针变量p和int变量a
// *p=&a; //把指针p指向的值改变为变量a的地址,是无效的
//因为a的地址长度为4字节,而指针p指向的值为int,即两字节的。
printf("程序运行前的值\n");
printf("p的地址=0x%X\n指针p指向的值=0x%X\n指针p自己的值=0x%X\n",&p,*p,p);
printf("a的地址=0x%X\na的值=0x%X\n",&a,a);
*p=a; //指针p指向的值改变为a的值
printf("\n执行*p=a;指令后的值\n");
printf("p的地址=0x%X\n指针p指向的值=0x%X\n指针p自己的值=0x%X\n",&p,*p,p);
printf("a的地址=0x%X\na的值=0x%X\n",&a,a);
p=&a; //把指针p自己的值改变为变量a的地址,同时指针p指向变量a的值了
printf("\n执行p=&a;指令后的值\n");
printf("p的地址=0x%X\n指针p指向的值=0x%X\n指针p自己的值=0x%X\n",&p,*p,p);
printf("a的地址=0x%X\na的值=0x%X\n",&a,a);
return0;
}

int *p=a和int *p=&a有什么区别?

int *p=&a 其实是两个语句 等价于 int *p; p=&a; 如果a是int型,int *p=a是错误的,正确的应该是 int *p; p=&a; 在定义的时候不能给p直接赋值整型,只能赋值int型地址 即 &a; 如果要给p指针指向的地址赋值,就可以*p=a;但不能在定义*p的时候直接赋整型。

C语言 int a,*p;*p=a;这个语句对吗?

楼主 一定要 区分 声明、定义、初始化 三者之间的区别哦 int a, *p; 这个叫声明,表示a是一个int类型,p是一个指向int类型的指针 还没有定义哦 *p=a,这个叫赋值语句,但是右边的 a只是一个声明,而没有定义,因此是没有用的,这个用法是错误的 TC支持,那是因为 编译器对 标准C规则进行了扩展,但是换了编译器未必就正确哦 所以好的编程习惯就是一定 按照 标准C规则来 声明:只是一个声明,没有分配内存 定义:这时候,才会分配内存,变量才有意义 初始化:在分配内存时候,给变量一个值 赋值:对一个已经分配内存的变量可以用=赋值(换一个值) 楼主补充了问题,我可以很负责的告诉你, in

int a ,*p=&a,**pp=&p 这个**pp是什么意思

**pp是双重指针的意思,意思就是指向指针的指针。该段程序所表达的意思如下: 1、定义一个整数形式的a。 2、定义一个P指针指向a(把a的地址&a赋值给P)。 3、然后再定义一个双重指针PP,指向P这个指针。 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。

标签:信息技术 编程 编程语言 CC++ C(编程语言)

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18