直接访问数据和间接访问数据 直接访问数据是指通过变量名直接使用变量数据,我们以前编写的程序,都是用这种方式访问数据。例如: int i; scanf("%d",&i); printf("%d",i); 间接访问数据是指通过指针变量去访问其他变量数据,这是C语言中大量使
❷ 概念帝请进,c语言,关于直接访问和间接访问的问题
我来打个比方吧:
a. 直接访问某个地址,就相当于你知道某个物品放在某个抽屉里,然后你去那个抽屉,然后访问你的物品。
b. 间接访问就是,你知道某个抽屉放着一个纸条,纸条写着:某某物品存放于某某另外一个抽屉。
这样的话
a里面的抽屉,就是变量,
b里面存放纸条的抽屉,就是指针,指针的值,就是那个纸条,纸条指向另外一个抽屉(变量),另外一个抽屉存放的东西,就是一个变量的值。
❸ "C语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用”这句话对么
对的
❹ C语言中对指针变量的直接和间接引用怎么区别
引用相比于于指针各有优点:一、引用变量它不能改变自身所引用的地址空间,而指针变量可以,那么就很可能出现一些因为不小心的修改而导致错误的结果。二、在作为函数参数方面,引用作为参数,你调用的时候不需要对变量取地址值,这样看起来比较直观,而且方便,如果是指针变量作为参数,那么你有时候会不明白这个函数到底是对指针进行运算,还是对指针指向的变量空间进行运算,而且还要取地址操作。三、不过有时候指针还是比引用好用的多,不如你需要快捷修改指向位置,那么指针是很快的,有时候你就是要对地址(就是直接对内存)操作,那么指针是首选啦。 下面是一个例子希望对你有用: //PointAndRef.cpp#include<iostream.h> //cout<< void pointFun(int *a,int *b) //指针作为参数{
int temp;
temp=*a;
*a = *b;
*b=temp;
}void refFun(int &a,int &b) //引用作为参数
{
int temp;
temp=a;
a=b;
b=temp;
}
void main()
{
int a,b;
a=1,b=2;
pointFun(&a,&b); //指针调用需要取地址值。
cout<<"a="<<a<<"b="<<b<<endl;
int c,d;
c=3,d=4;
refFun(c,d); //引用调用和正常变量调用一样。
cout<<"c="<<c<<"d="<<d<<endl;
}
❺ c语言 什么是间接引用(indirection)
间接引用,通俗的讲就是使用指针的指针
如:
int a;//定义整型变量,为其分配内存空间,假设为0xaaaaaaa
int *p;//定义指针,分配内存空间,假设为0xbbbbbbb
p=&a;//指针变量名p表示的是指针变量本身的值,而不是其地址
所以,这个语句执行后,p本身所在的内存地址不变,而是里面的数据改变了。p=0xaaaaaaa,也就是地址0xbbbbbbb里的数据变成0xaaaaaaa
*p=5;//直接引用,往p,也就是地址0xaaaaaaa 写入数据5。
int **pp;//定义指针的指针,分配内存空间,假设为0xcccccccc
pp=&p;//,0xcccccccc这个内存地址里的数据是p的地址,也就是0xbbbbbbbb
**pp=5;//间接引用,我们通过pp的地址0xcccccccc,取得里面的数据0xbbbbbbbb,再通过这个数据0xbbbbbbbb,知道a的地址,往里写入数据,给a赋值5
❻ c语言中能直接输入就调用函数吗
在windows下的编译器,支持conio.h头文件的可使用 getch()函数。
例:
main()
{
char ch;
ch = getch();
if( ch == 'a')
printf("OK\n");
}
Linux下的编译器不支持 getch 函数,可使用系统命令关闭缓冲区,则不需要回车直接读取。
例:
#include <stdio.h>
int main()
{
char ch;
system("stty -icanon");//关闭缓冲区,输入字符无需回车直接接受
ch = getchar();
if(ch == 'a')
printf("OK\n");
return 0;
}
❼ 简述C语言中直接访问数据方式和间接访问数据方式的区别
C语言具有获取变量地址和操作地址的能力,而用来操作地址的这种特殊数据就需要使用指针。指针是C的核心思想,是否可以熟练运用指针是是否掌握C语言的标志。
指针概述
指针是一种数据类型,它的值表示内存地址,指针数据类型声明的变量是指针变量,使用指针变量可以对内存空间进行操作。在C中,对内存空间的访问有两种访问方式,直接访问和间接访问。
1.直接访问
按照C的方式,如果定义一个变量,系统会给这个变量分配一块内存,变量有两个属性,变量值和变量地址。变量地址指示了该变量在内存中的存储位置,变量值是这块内存中的内容。要访问这块内存空间上的内容,可以直接使用变量名。
2.间接访问
间接访问的含义是先从其它内存空间获得要访问的内存地址,根据得到的地址访问目的地址。
❽ C语言题!这个题什么意思 允许直接递归调用和允许间接递归调用什么意思这题分析下!
递归就是重复调用某一函数最终达到运算结果。a函数里面直接调用a函数叫做直接递归调用;a函数里调用b函数,b函数里再调用a函数就是间接递归调用。
❾ .C语言规定,程序中各函数之间.既允许直接递归调用也允许间接递归调用.这句话对吗
没错。。。。。。。
❿ C语言中,函数是否可以直接或间接调用自己!!求大神!!求解析!!!
可以.C语言中,任何函数都可以直接或间接地被自己或其他函数调用,包括main函数(注意我说的是C,不是C++)
例如,典型的利用main递归实现逆序输出
#include<stdio.h>
intmain()
{
intc;
if((c=getchar())!=EOF)//EOF用Ctrl+Z或者F6
{
main();
}
printf("%c",c);
return0;
}