直接訪問數據和間接訪問數據 直接訪問數據是指通過變數名直接使用變數數據,我們以前編寫的程序,都是用這種方式訪問數據。例如: 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;
}