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

2025-05-08 02:41:24
推荐回答(5个)
回答1:

这里是要注意一个参数的问题,参数分为:形参与实参
形参就是形式参数,也就是函数定义中的参数
实参就是实际参数,也就是函数调用中的参数

int a(int a, char * b){}
上面的函数定义中,函数定义括号中的参数a与b就是形式参数,也就是形参
而当你在调用这个函数时,这个参数就是实际参数如:
int d = 32;
char * s = "Hello Josin";
//注意下面的函数调用:
a(d, s);
此时函数a的参数中d与s就是实际参数。也就是实际传递给函数的参数。

回答2:

定义一个保存char型变量地址的指针q,并把变量a的地址保存到q指针中
此时q中保存的是&a(即a在内存中地址)
如果在程序中出现(并不是最开始的定义指针时)的*q则表示q指针中保存的地址所指向的变量,
在你定义的这个中*q就等于a

回答3:

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


比如:

char _a; 
char *a = (char *)_a;  // 就是将char类型的变量_a转换为char *类型,并赋值给*a

回答4:

_a是形参,因为前面有const修饰所以在子函数中,_a是不能被修改的,
所以要处理_a中的数据就要将_a的值赋给子函数里的变量,使用这个变量来对_a中的数据进行运算,其他指针之类不用再讲了吧,这里面有个指针做形参和普通变量做形参的区别,你要了解这个区别,这个就很容易懂了。

回答5:

从这个式子可以判断a
也为指向字符型的指针,所以式子的意思是
定义一个指向字符型的指针q,并把它初始化为a,即此时q,a指向相同的字符变量