C语言中char * a=(char *)_a什么意思?

c语言函数如下:inttring(constvoid*_a,constvoid*_b){char*a=(char*)_a;char*b=(char*)_b;returns... c语言函数如下:

int tring(const void* _a,const void* _b)
{
char* a=(char*)_a;
char* b=(char*)_b;
return strcmp(a,b);
}

在这个函数中a与_a之间区别是什么?请大侠明示。
小弟在此谢谢了!!!
展开
 我来答
拓宽视野
推荐于2016-03-07 · TA获得超过636个赞
知道小有建树答主
回答量:340
采纳率:0%
帮助的人:264万
展开全部
这里是要注意一个参数的问题,参数分为:形参与实参
形参就是形式参数,也就是函数定义中的参数
实参就是实际参数,也就是函数调用中的参数

int a(int a, char * b){}
上面的函数定义中,函数定义括号中的参数a与b就是形式参数,也就是形参
而当你在调用这个函数时,这个参数就是实际参数如:
int d = 32;
char * s = "Hello Josin";
//注意下面的函数调用:
a(d, s);
此时函数a的参数中d与s就是实际参数。也就是实际传递给函数的参数。
追问
那char* a=(char*)_a
是什么意思呢?
追答
这里的_a表示的是传递进来的实际参数,使用了强制转换符()将类型转换为char *类型,因为变量a的类型为char *。
刁煊胥歆然
2019-09-05 · TA获得超过3649个赞
知道大有可为答主
回答量:3176
采纳率:29%
帮助的人:175万
展开全部
定义一个保存char型变量地址的指针q,并把变量a的地址保存到q指针中
此时q中保存的是&a(即a在内存中地址)
如果在程序中出现(并不是最开始的定义指针时)的*q则表示q指针中保存的地址所指向的变量,
在你定义的这个中*q就等于a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天云小店
推荐于2016-10-27 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:772万
展开全部

char *a = (char *)_a;  // 表示将变量_a进行强制类型转换为char *类型


比如:

char _a; 
char *a = (char *)_a;  // 就是将char类型的变量_a转换为char *类型,并赋值给*a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tear743
推荐于2018-03-01
知道答主
回答量:14
采纳率:0%
帮助的人:4.6万
展开全部
_a是形参,因为前面有const修饰所以在子函数中,_a是不能被修改的,
所以要处理_a中的数据就要将_a的值赋给子函数里的变量,使用这个变量来对_a中的数据进行运算,其他指针之类不用再讲了吧,这里面有个指针做形参和普通变量做形参的区别,你要了解这个区别,这个就很容易懂了。
追问
_a是形参,那么这里的a就单单是个变量?
追答
准确说是指针。。。
算了,说具体点吧,const void* 定义的是空类型指针,并且是只能初始化一次后面不能变,你可以查下const这个词的c语法,因为在传入_a的时候之前应该是初始化过,所以形参传进来,在子函数里无法直接更改,如果只是普通变量没有const 或者不是指针也没什么,直接用也可以,但是指针的操作影响实参,所以,如果直接使用_a编译是过不了的。
解释下char* a=(char*)_a;这句话的意思就是,将_a变量强制转换为(void 指针)char类型指针,然后将指针首地址传给a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
检言尉迟月明
2019-01-20 · TA获得超过3559个赞
知道大有可为答主
回答量:3091
采纳率:32%
帮助的人:450万
展开全部
从这个式子可以判断a
也为指向字符型的指针,所以式子的意思是
定义一个指向字符型的指针q,并把它初始化为a,即此时q,a指向相同的字符变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式