㈠ c语言指针变量值交换
你只是a和b换个值,干嘛要用指针,用temp就行了。你定义的两个指针也没用上啊,而且a和b换值,最好的做法是
a=a^b
b=a^b
a=a^b
如果我没记错的话就是这样子,利用异或最省计算资源了。
㈡ C语言指针中怎样强制转换变量类型
在变量的前面加上强制转换符号就可以了,比如要讲变量a转换层整形
可以这样写(int)a
㈢ C语言指针使用函数交换两个变量的值
这个地方会出现不好理解的东西。
调用函数的时候,你放入了int a int b 但是这其实不是你的main函数中的a b只是相当于他们的副本,也就是复制了一个a 和b 传入函数 所以你改变的只是传入的副本 也就是复制的副本a b所以在main函数中打印的ab不会出现变化 依然是a=3,b=6
现在回答第二个问题,怎么会让ab的值变化:传入指针,也就是在main函数中使用a b的指针,然后吧指针传入到函数里面 这个时候ab就会真正的发生变化,因为指针指向的是ab的物理地址,也就是真正的ab,不是副本,这个时候就会改变ab的值。想要理解,可以去网络传值参数和引用参数。纯手打,望采纳
㈣ c语言指针强制转换
1、int *p=(int *)0x
这是将指针变量p指向一个绝对地址;而地址只是一个数值,需要转成指针类型才能与p匹配。
2、强制类型转换的一般形式为:(类型说明符)(表达式),例如: (float) a 把a转换为浮点型,(int)(x+y) 把x+y的结果转换为 整型。强制类型转换是通过类型转换运算来实现的。功能是把表达式的运算结果强制转换成类型说明符所表示的类型。注意事项:①类型说明符和 表达式都必须加括号(单个 变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。②无论是 强制转换或是自动转换,都只是为了本次运算的需要而对 变量的数据长度进行的临时性转换,而不改变数据说明时对该 变量定义的类型。
㈤ C语言中指针变量值互换问题
先声明一个临时变量p
p1,p2是两个指针,分别指向需要换值的两个数的地址
*p1是p1地址中数值
先将p1的值保存在临时的p中,在将p2的值赋给p1地址处
然后再将p的值送回p2中,因为p刚刚被p1赋值,所以p2的值就变成p1的值,达到互换的目的
㈥ C语言如何把指针指向的值赋值到变量上。。。
str1是个常量指针,不能对他进行赋值操作, 用也应该写成p=str1; 另外初始化的话一般是char* p=NULL; 或者char* p; p=NULL;
㈦ C语言指针变量怎么转化为普通类型变量
赋值语句即可传递数值。
指针变量: 声明 int *p; 语句中 *p 表示 值, p 表示 地址。
普通变量: 声明 int x; 语句中 x 表示 值,&x 表示 地址。
#include <stdio.h>
int A(int a,int *b)
{
*b=a; //赋值语句即可传递数值
return a;
}
int main()
{
int a,b,c;
a=10;
c=A(a,&b);
printf("%d %d %d\n", a,b,c);
return 0;
}
㈧ C语言怎么让指针指向某个变量
首先要知道两个最基础的知识点:
1、&a指向的是a的地址。
2、指针指向的是地址,和整型变量的值并不对等,也就是int *与int不对等,是不能从int转换为int *的。
知道以上两个最基础的知识点,你的问题就很简单了 。
第一个:
int *p;
p=&a;
是正确的。定义指针变量p,然后才将p指向变量a的地址。
第二个:
int *p;
p=int* (&a);
p是指针,指向的是地址,而不是int型值,因此是错误的。
第三个:
int *p=a;
不能从int转换为int *,因此是错误的。
只有第一个是正确的,后面两个都是错误的。