您的位置:

c语言指针c变量,c语言中变量的指针和指针变量的区别

本文目录一览:

C语言指针变量

假设a

是一个抽屉,里面只能放一个整数,(就是所谓的int

,这个不重要),当这个抽屉存在的时候,它就已经有一个编号了(就是地址),这个号是系统编的,不能更改。而p

是另一个抽屉,里面只能放编号,p=a,就是把a的编号放到p

这个抽屉里,现在如果你知道了p

里放的编号,你就可以按照这个编号找到这个对应的抽屉。这就对应上了,不知道你能看明白不?

a

就是10

,这里的10

就是a

,它俩是同一个东西,当然放在同一个地方,这个地方的序号比如1000,这个序号保存在p

里。

a

10在这里就是一码事,它俩指的是同一个东西,比如一只白狗叫a,这个a

就是指这只白狗,a和这只白狗此时就是一回事,同一个东西在某一时刻还能在俩地方吗?

C语言指针基本概念及其指针变量的定义是什么

指针是常见间接访问方式.指针就像一个快捷方式,它指向内存的一个地址,可以通过指针就可以间接的访问到数据。对于计算机,访问内存的方式有两种,直接访问和间接访问。直接访问通过就是通过变量名称去访问。指针概念是构成C/C++的重要元素之一,是变量的一种类型,存放的是指定类型数据的地址,而同类型变量存放的是数据。

指针变量:就是一个变量,其值是可变的,与整形变量、浮点变量等等的命名规则完全相同。 “指针”是概念,“指针变量”是具体实现。指针类型说明,即定义变量为一个指针变量; 指针变量名; 变量值(指针)所指向的变量的数据类型。

扩展资料:

与其他高级编程语言相比,C 语言可以更高效地对计算机硬件进行操作,而计算机硬件的操作指令,在很大程度上依赖于地址。指针提供了对地址操作的一种方法,因此,使用指针可使得 C 语言能够更高效地实现对计算机底层硬件的操作。另外,通过指针可以更便捷地操作数组。在一定意义上可以说,指针是 C 语言的精髓。

c语言中变量的指针,其含义是指变量的什么?

指针变量是有加减运算的,但是要注意以下几点:

1.指针变量中存放的是地址值,也就是一个数字地址,例如某指针变量中的值是0x20000000,表示表示此指针变量存放的是内存中位于0x20000000地方的内存地址。指针变量可以加减,但是只能与整型数据加减,此时加减的含义并不是其地址值进行了加减,也就是说如果指针变量p的值是0x20000000,那么p=p+2;的值并不是0x20000002,并不是地址值的简单相加,那么地址值加减多少是与指针指向的数据类型相关联的,如果在32位的操作系统上,p是指向整型数据的指针变量,那么p=p+2之后,p的地址值变成0x20000008,也就说实际上地址值加了多少呢:sizeof(int)*2这么多。说明白点,我们加减的数字是以指针指向的数据类型为量度的,p+2表示p在内存中前移两个int的距离,如果p不是int类型,而是其他类型道理也是一样。同样指针与整型数据相减也是同样的道理。

2.指针之间可以相减,但不可以相加:两个同一类型的指针变量是可以相减的,他们的意义表示两个指针指向的内存位置之间相隔多少个元素(注意是元素,并不是字节数),例如对于int类型的指针p和p1.p1-p的意义表示他们之间相隔多少个int类型的元素。同样对于其他类型的指针变量之间相减的意义也是一样。指针变量的自加和自减实际上是与整数1的加减运算。

3.指针之间可以比较大小。但是同样也限于两个相同类型的指针变量,不同类型的指针变量之间比较大小没有任何意义。指针之间的大小比较的意义,表示在内存中他们指向的位置的高低关系。

c语言指针变量?

#include stdio.h

#include malloc.h

int main(void)

{

char *s, *t, *ch;

int n = 0, i;

s = t = NULL;

ch = (char *)malloc(sizeof(char));

while (scanf("%c", ch))

{

if (*ch == 10)

break;

n ++;

t = s;

s = (char *)malloc(sizeof(char) * n);

if (t != NULL)

{

for (i = 0; i n - 1; i ++)

s[i] = t[i];

free(t);

t = NULL;

}

s[n - 1] = *ch;

}

puts(s);

free(ch);

free(s);

return 0;

}

C语言指针变量定义?

根据你的定义,使用LinkList定义的变量是指针变量,而加上*即LinkList *C表示的是指向指针的指针,表示二级指针变量。

你的合并函数是一个没有返回值的函数,所以你在函数体内更改C要达到更改实参的效果,你必须传入实参的地址。

如果是一级指针,C接收实参指向的对象地址,如果此时在函数体内对C进行赋值,只是改变了函数体内C的指向,实参还是指向原来的地址。函数内是改变不了实参C本身的指向,只有传入实参C变量本身的地址,那么形参就要定义指向指针的变量来接收实参。

以上是一种方法,另外一种方法就是通过函数返回值,返回新合并的链表的头。那函数类型就可以改为:

LinkList MergeList(LinkList a, LinkList b)。

这可以多练习好好理解一下。

c语言中,什么是变量指针,什么是指针变量,并举例说明

变量指针:指向的数据为变量的指针,如char *p。与此相对的是常量指针,如const char* p。

指针变量:类型为指针的变量,如char *p。与此相对的是指针常量,如char* const p。