一个指针赋值给另一个指针 (C语言)地址为什么要变成指针才能赋值给指针变量呢?
(C语言)地址为什么要变成指针才能赋值给指针变量呢?
指针即地址。所以您的问题问的不对。
我所理解的应该是想问为什么变量需要取地址以后再赋值给指针变量,即int a,*p p=&a
先讲个小概念,数字23,在“今年我23岁了”这句话中23的语义是年龄;在“我的偶像身穿23号篮球服”这句话中23是篮球服的编号。也就是说数字23在不同的语句环境中语义不一样。
回归正题,int a,*p p=&a 在这里我们定义了两个整形变量,在内存中他们都存放的是二进制编码,但是他们的语义是不一样的,一个用来存放整数,一个却是用来存放指向一个整形变量的指针(指针即地址)。简单说这两个变量可不一样,一个是普通变量存放常用的数值,一个是特殊变量(所以还要加个*号区分一下)存放另外一个变量的物理地址。
这么讲您能明白嘛?不明白的话可以再邀请我回答这个问题。
c语言中,可以将什么值赋值给指针变量?
变量地址:int*p;inta;p=&a;另一个指针:int*p1,*p2intap2=&ap1=p2数组名:inta[10]int*pp=a基本上所有地址都可以赋值给指针变量
C语言将地址赋值给指针变量?
取决于p的类型。struct stu_type *p=&stu1;这里的*是和类型一起的,用来定义,而非初始化。 等效于struct stu_type *pp=&stu1;至于去掉, 如果写成struct stu_type p=&stu1;绝对会报错。 不存在你说的去掉和加上结果不变。
C语言中,为什么字符串可以赋值给字符指针变量?
在C语言中并没有字符串这个类型。所说的字符串就是字符数组。也就是char类型的数组。与普通数组不同的,字符串必须以"0"作为结束符。而在C语言中,类型为T的一维数组,其首地址等效于该类型的一维指针,即T*型。于是字符串,也就是字符数组,首地址就可以当做char *型使用了。事实上,在库函数以及大多数使用到字符串作为参数的函数中,其参数都是char *型的。
一个指针赋值给另一个指针 指针赋值有几种方法 c语言指针详解
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。