c语言关于指针函数中地址和变量的关系问题?请大神解答?
时间:10-02
整理:3721RD
点击:
#include<stdio.h>
void change(char *c);
void mian()
{
char *c;
*c='q';
change(c);
printf("the char is %c",*c);
}
void change (char *c)
{
if(*c>'a' & *c<'z')
*c=*c-32;
}
主函数change(c)的地址给了void change (char *c),相当于change中*c=主函数c的地址码(*c=&c我的理解),那为什么 if(*c>'a' & *c<'z')地址和'a'怎么能在一起比较,也就是地址怎么能和变量进行比较呢?////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////大神帮我看看我理解的对不对?如果有不对的地方希望帮忙改正!
*c='q'; //把字符型q赋值给了指针变量c
change(c); //把*c的地址(如0x01)给了change里的c
void change (char *c) // *c=0x01地址里的数='q'--------相当于*c=‘q'
{
if(*c>'a' & *c<'z')
*c=*c-32; //*c=’q'-32=‘Q' 返回给void main 输出;
}
void change(char *c);
void mian()
{
char *c;
*c='q';
change(c);
printf("the char is %c",*c);
}
void change (char *c)
{
if(*c>'a' & *c<'z')
*c=*c-32;
}
主函数change(c)的地址给了void change (char *c),相当于change中*c=主函数c的地址码(*c=&c我的理解),那为什么 if(*c>'a' & *c<'z')地址和'a'怎么能在一起比较,也就是地址怎么能和变量进行比较呢?////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////大神帮我看看我理解的对不对?如果有不对的地方希望帮忙改正!
*c='q'; //把字符型q赋值给了指针变量c
change(c); //把*c的地址(如0x01)给了change里的c
void change (char *c) // *c=0x01地址里的数='q'--------相当于*c=‘q'
{
if(*c>'a' & *c<'z')
*c=*c-32; //*c=’q'-32=‘Q' 返回给void main 输出;
}
c是一个指向字符的指针,就相当于一个门牌地址,
*c是这个地址指向的真正内容,就是在这个地方住的那个人,经过赋值就是那个‘q’;
进去change(c)后,*c就是‘q'
谢谢啊 十分感谢