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之间区别是什么?请大侠明示。
小弟在此谢谢了!!! 展开
int tring(const void* _a,const void* _b)
{
char* a=(char*)_a;
char* b=(char*)_b;
return strcmp(a,b);
}
在这个函数中a与_a之间区别是什么?请大侠明示。
小弟在此谢谢了!!! 展开
6个回答
展开全部
这里是要注意一个参数的问题,参数分为:形参与实参
形参就是形式参数,也就是函数定义中的参数
实参就是实际参数,也就是函数调用中的参数
如
int a(int a, char * b){}
上面的函数定义中,函数定义括号中的参数a与b就是形式参数,也就是形参
而当你在调用这个函数时,这个参数就是实际参数如:
int d = 32;
char * s = "Hello Josin";
//注意下面的函数调用:
a(d, s);
此时函数a的参数中d与s就是实际参数。也就是实际传递给函数的参数。
形参就是形式参数,也就是函数定义中的参数
实参就是实际参数,也就是函数调用中的参数
如
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 *。
展开全部
定义一个保存char型变量地址的指针q,并把变量a的地址保存到q指针中
此时q中保存的是&a(即a在内存中地址)
如果在程序中出现(并不是最开始的定义指针时)的*q则表示q指针中保存的地址所指向的变量,
在你定义的这个中*q就等于a
此时q中保存的是&a(即a在内存中地址)
如果在程序中出现(并不是最开始的定义指针时)的*q则表示q指针中保存的地址所指向的变量,
在你定义的这个中*q就等于a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char *a = (char *)_a; // 表示将变量_a进行强制类型转换为char *类型
比如:
char _a;
char *a = (char *)_a; // 就是将char类型的变量_a转换为char *类型,并赋值给*a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
_a是形参,因为前面有const修饰所以在子函数中,_a是不能被修改的,
所以要处理_a中的数据就要将_a的值赋给子函数里的变量,使用这个变量来对_a中的数据进行运算,其他指针之类不用再讲了吧,这里面有个指针做形参和普通变量做形参的区别,你要了解这个区别,这个就很容易懂了。
所以要处理_a中的数据就要将_a的值赋给子函数里的变量,使用这个变量来对_a中的数据进行运算,其他指针之类不用再讲了吧,这里面有个指针做形参和普通变量做形参的区别,你要了解这个区别,这个就很容易懂了。
追问
_a是形参,那么这里的a就单单是个变量?
追答
准确说是指针。。。
算了,说具体点吧,const void* 定义的是空类型指针,并且是只能初始化一次后面不能变,你可以查下const这个词的c语法,因为在传入_a的时候之前应该是初始化过,所以形参传进来,在子函数里无法直接更改,如果只是普通变量没有const 或者不是指针也没什么,直接用也可以,但是指针的操作影响实参,所以,如果直接使用_a编译是过不了的。
解释下char* a=(char*)_a;这句话的意思就是,将_a变量强制转换为(void 指针)char类型指针,然后将指针首地址传给a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从这个式子可以判断a
也为指向字符型的指针,所以式子的意思是
定义一个指向字符型的指针q,并把它初始化为a,即此时q,a指向相同的字符变量
也为指向字符型的指针,所以式子的意思是
定义一个指向字符型的指针q,并把它初始化为a,即此时q,a指向相同的字符变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询